首页 > 解决方案 > 创建具有多条线和图例的 Matplotlib 折线图

问题描述

这是我的第一篇文章。我正在尝试为我的数据框中的每个“主题”绘制一个折线图。x 轴是“访问次数”列,y 轴是“dB”列。我也想要一个传奇。数据如下所示:

4个科目的数据

但是,如果我的数据框仅包含一个主题,我只能使其工作:

一个主题的数据

plt.plot(test_df['Visit Number'], test_df['dB'], 'b-')
plt.show()

绘制一个主题

我想要一个情节,每个主题都有一条线。我还希望每个主题在图例中都显示为标签。谢谢。

标签: pythonmatplotlib

解决方案


使用 pandas,您可以迭代分组值,因此我建议您迭代子数据集并用标签绘制每个子数据集,然后调用plt.legend().

这是我没有完全测试过的代码,所以请谨慎使用,也许下次可以考虑提供一个可用的数据集样本,这样更容易!

for subject, sub_df in testdf.groupby(by='subject'):
    plt.plot(sub_df['Visit Number'], sub_df['dB'], label=subject)
plt.legend()

推荐阅读