python - 为什么我在 matplotlib 的 x 轴上得到垃圾日期值?

标签 python date datetime matplotlib

我是 Python 新手,正在使用 matplotlib 学习数据可视化.
我正在尝试使用 matplotlib 绘制日期/时间与值的关系图从这个 CSV 文件:
https://drive.google.com/file/d/1ex2sElpsXhxfKXA4ZbFk30aBrmb6-Y3I/view?usp=sharing
以下是我一直在玩的代码片段:

import pandas as pd
from matplotlib import pyplot as plt
import matplotlib.dates as mdates

plt.style.use('seaborn')
years = mdates.YearLocator()
months = mdates.MonthLocator()
days = mdates.DayLocator()
hours = mdates.HourLocator()
minutes = mdates.MinuteLocator()
years_fmt = mdates.DateFormatter('%H:%M')

data = pd.read_csv('datafile.csv')
data.sort_values('Date/Time', inplace=True)

fig, ax = plt.subplots()
ax.plot('Date/Time', 'Discharge', data=data)

# format the ticks
ax.xaxis.set_major_locator(minutes)
ax.xaxis.set_major_formatter(years_fmt)
ax.xaxis.set_minor_locator(hours)
datemin = min(data['Date/Time'])
datemax = max(data['Date/Time'])
ax.set_xlim(datemin, datemax)
ax.format_xdata = mdates.DateFormatter('%Y.%m.%d %H:%M')
ax.format_ydata = lambda x: '%1.2f' % x  # format the price.
ax.grid(True)
fig.autofmt_xdate()
plt.show()
代码正在绘制图形,但没有标记 X-Axis 并在右下角为 x 提供一些未知值(在鼠标悬停时),如下面的屏幕截图所示:
的截图matplotlib 图形窗口

有人可以建议绘制 x 轴日期需要哪些更改,并在我将光标移到图形上时显示正确的值吗?
谢谢

最佳答案

我没用过 matplotlib .相反,我使用了 pandas绘图

import pandas as pd

data = pd.read_csv('datafile.csv')
data.sort_values('Date/Time', inplace=True)
data["Date/Time"] = pd.to_datetime(data["Date/Time"], format="%d.%m.%Y %H:%M")

ax = data.plot.line(x='Date/Time', y='Discharge')
在这里,您需要转换Date/Time到 Pandas 日期时间类型。
enter image description here

关于python - 为什么我在 matplotlib 的 x 轴上得到垃圾日期值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62977222/

相关文章:

php mysql - phpmyadmin 日期

Python strftime 德语日期字符串

Python读取带有换行符和段落分隔元素的文本文件

python - 有没有更简单的方法来恢复 SqlAlchemy 集成测试之间的状态?

ios - 如何快速获取日期的时间

mysql - 如何在 MySQL 中执行此查询? (约会时间)

mysql - 使用 DATE 和 DATETIME 时行数不同

python - codesignal 上的逆排列错误解?

python - 复选框以取消选中所有其他复选框

ios - 没有 SSL 的 Google Analytics(iOS SDK)