我需要一些关于我的Matplotlib图的帮助。该项目可以在这里查看(目前在新图分支下工作(。
作为该项目的总结:
- 下载两个 CSV 文件(英国 COVID-19 病例和英国 COVID-19 死亡病例(
- 将CSV文件解析为Pandas数据框,以仅包含带有日期和累积值的列
- 使用 Matplotlib 条形图将这两组数据绘制在一个图上
我的问题是 Matplotlib 不会自动间隔 X 轴值(日期(。我不确定这是因为 Matplotlib 无法将它们识别为日期还是我犯的其他错误。 这是图表当前的外观。
编辑: 抱歉,我忘了将代码添加到问题中。在这里。。。
import matplotlib.pyplot as plt
def plot(cases,deaths):
#cases.plot(x='Specimen date',y='Cumulative lab-confirmed cases',color='green')
#deaths.plot(x='Reporting date',y='Cumulative deaths',color='red')
plt.figure("Cumulative deaths and cases")
ax = plt.gca()
cases.plot(kind='bar', x='Specimen date', y='Cumulative lab-confirmed cases',ax=ax, color='green')
deaths.plot(kind='bar', x='Reporting date', y='Cumulative deaths', ax=ax, color='red')
plt.show()
问题是对于图的大小,您有太多的刻度标签。
我建议将刻度间隔开,使其适合您的绘图。这可以通过set_xticks
来完成,从Axis.axis
.例如,在下面的示例中,我每出现 5 次就包含一个刻度。
为了进一步提高可读性,我还在刻度标签上加入了 45 度的旋转。请注意参数ha="right"
那里。它用于确保标签的右侧部分与刻度对齐。
def plot(cases, deaths):
plt.figure("Cumulative deaths and cases")
ax = plt.gca()
cases.plot(kind='bar', x='Specimen date', y='Cumulative lab-confirmed cases', ax=ax, color='green')
deaths.plot(kind='bar', x='Reporting date', y='Cumulative deaths', ax=ax, color='red')
ax.xaxis.set_ticks(range(0, len(cases), 5))
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha="right")
plt.show()
您可能希望使用此函数使 xticks 更小:plt.xticks(fontsize=desired_size)