如何在一张图中绘制DataFrame多列数据?covid_df绘图异常问题
解决双系列绘图不显示的问题
先排查数据有效性
首先确认new_deaths列是否有可绘制的有效数据:
# 查看统计信息,确认数值范围 print(covid_df[['new_cases', 'new_deaths']].describe()) # 检查缺失值数量 print(covid_df[['new_cases', 'new_deaths']].isnull().sum())
如果new_deaths全为NaN或0,曲线自然不会显示。
方案1:双Y轴适配量级差异
如果两列数值差距过大(比如新增病例是几万、新增死亡是几十),单Y轴会导致其中一条曲线被压缩到几乎看不见,用双Y轴解决:
import matplotlib.pyplot as plt covid_df.set_index('date', inplace=True) # 绘制第一个系列并获取轴对象 ax = covid_df['new_cases'].plot(color='#1f77b4', label='新增病例') # 创建共享X轴的第二个Y轴 ax2 = ax.twinx() covid_df['new_deaths'].plot(color='#ff7f0e', label='新增死亡', ax=ax2) # 添加图例和标题 ax.legend(loc='upper left') ax2.legend(loc='upper right') plt.title('COVID-19 新增病例与死亡趋势') plt.show()
方案2:显式指定同一轴(适用于量级接近的场景)
显式创建轴对象并传递给plot方法,确保两个系列绘制在同一张图:
import matplotlib.pyplot as plt covid_df.set_index('date', inplace=True) fig, ax = plt.subplots(figsize=(10, 6)) covid_df['new_cases'].plot(ax=ax, label='新增病例') covid_df['new_deaths'].plot(ax=ax, label='新增死亡') # 添加图例与坐标轴标签 ax.legend() plt.xlabel('日期') plt.ylabel('数量') plt.title('新增病例与死亡对比') plt.show()
内容的提问来源于stack exchange,提问作者weewoo
相关产品推荐
相关产品推荐

