Python使用matplotlib绘制CSV数据时设置X轴日期月度间隔报错
报错根因
plt.plot() 函数返回的是折线对象的列表,并非坐标轴Axes对象,因此调用.xaxis属性会触发属性不存在的报错。
完整修正代码
import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates # 读取CSV时直接解析日期列,dayfirst适配你数据中日.月.年的格式 df = pd.read_csv('file.csv', parse_dates=['Date'], dayfirst=True) # 先创建画布和坐标轴对象 fig, ax = plt.subplots() # 用ax调用plot方法绘图,后续直接操作ax对象即可 ax.plot(df['Date'], df['Company 1']) # 设置X轴按月度间隔展示刻度 ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1)) # 可选:设置日期展示格式,避免标签过长 ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m')) # 可选:自动旋转X轴标签,彻底解决重叠问题 fig.autofmt_xdate() plt.show()
补充说明
- 你之前写的
df.set_index('Date')没有赋值给新变量也没有加inplace=True,不会修改原df,不需要设置索引的话可以直接删除该行 - 后续适配Combobox下拉框选公司的需求时,仅需要把
df['Company 1']替换为下拉框返回的公司名对应的列即可
内容的提问来源于stack exchange,提问作者Martin Kunze
相关产品推荐
相关产品推荐

