我是一个初学者,我正在尝试在matplotlib上创建条形图。我正在使用金融工具导入包含每日交易量数据的CSV文件。我已经能够成功按月汇总数据,现在尝试绘制每月交易量图表。
我正在尝试格式化X轴数据,因为它目前显示的是分钟,小时和秒,还包括天,月和年。
我怀疑这很简单,但是已经在这个问题上坐了几个小时,无法解决它。任何帮助将不胜感激。我需要将日期格式显示为YYYY-MM,而不是此处显示的格式:
``
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import DateFormatter
import matplotlib.dates as mdates
df = pd.read_csv('C:/Users/gregor/Documents/Python Scripts/data.csv', infer_datetime_format='True')
df['date']=pd.to_datetime(df['date'])
#
df.set_index('date', inplace=True)
volume = df['volume'].resample('MS').sum()
oi = df['open interest'].resample('MS').mean()
xaxis = np.arange(len(volume))
plt.bar(xaxis,volume,align='edge')
plt.xticks(xaxis,volume.index, rotation = 45)
plt.autofmt_xdate()
plt.show()
``
编辑-它与以下代码一起使用,现在的图表如下:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import DateFormatter
import matplotlib.dates as mdates
df = pd.read_csv('C:/Users/gregor/Documents/Python Scripts/data.csv', infer_datetime_format='True')
df['date']=pd.to_datetime(df['date'])
#
df.set_index('date', inplace=True)
myFmt = mdates.DateFormatter('%Y-%m')
volume = df['volume'].resample('MS').sum()
oi = df['open interest'].resample('MS').mean()
xaxis = np.arange(len(volume))
fig,ax = plt.subplots()
ax.bar(volume.index,volume,width=15)
ax.xaxis.set_major_formatter(myFmt)
plt.show()