首页 > 解决方案 > 如何在一个绘图图形上绘制两个 Pandas 系列?

问题描述

我有两个具有相同索引的系列,需要在同一个图上绘制它们的值,每个图都作为线图。

fig, axs = plt.subplots()
sns.lineplot(numkdhh_pmf.index, numkdhh_pmf.values, ax = axs, color = 'r')
sns.lineplot(biased.index, biased.values, ax = axs, color = 'b')
plt.show()

这只显示后一个情节,以第二个写的为准。关于为什么两个情节都拒绝在图中显示的任何想法?

两个系列的值具有相似的比例,因此不是缩放问题。

编辑

这两个图显示了省略无花果时,根据以下代码设置的 axs。我仍然不确定为什么,因为我对 Seaborn/matplotlib 没有透彻的了解。代码确实是从 Jupyter 运行的,但它总是在同一个单元格中。感谢大家的帮助。

ax2 = sns.lineplot(biased.index, biased.values, color = 'r')
sns.lineplot(numkdhh_pmf.index, numkdhh_pmf.values, ax = ax2, color = 'b')
plt.show()

标签: pythonmatplotlibseaborn

解决方案


虽然您的代码对我来说可以正常工作,但您可以尝试另一种选择。sns.lineplot返回一个轴实例(我们称之为它ax1),您可以将其传递给第二个线图。我选择了一些假数据来提供答案。

data = np.random.random((10))
ax1 = sns.lineplot(data, data, ax = axs, color = 'r')
sns.lineplot(data+0.5, data+0.8, ax = ax1, color = 'b')

在此处输入图像描述


推荐阅读