1 回答
TA贡献1827条经验 获得超9个赞
首先,我强烈建议您使用该pandas库及其DataFrame对象来处理您的数据。它有一些非常有用的功能,例如read_csv,可以为您节省一些工作。
为了让 matplotlib 空间更合理,您需要将日期转换为datetime对象(而不是将日期存储为字符串)。
在这里,我将使用 Pandas 读取您的数据,解析日期并按日期排序:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# Read data
df = pd.read_csv('/path/to/test.csv', names=['date', 'freq'], parse_dates=['date'])
# Sort by date
df.sort_values(by='date', inplace=True)
然后您可以继续绘制数据(您需要最新版本的熊猫来自动处理日期):
fig, ax = plt.subplots(1, 1)
# Plot date against frequency
ax.plot(df['date'], df['freq'], 'r-o')
# Rotate the tick labels
ax.tick_params(axis='x', rotation=45)
fig.tight_layout()
如果你只是想显示的日期时的频率变化,下面将工作
ax.set_xticks(df.loc[np.diff(df['freq']) != 0, 'date'])
虽然我不会推荐它(不等间距看起来很乱)
添加回答
举报