97

我已经开始了我的 IPython Notebook

ipython notebook --pylab inline

这是我在一个单元格中的代码

df['korisnika'].plot()
df['osiguranika'].plot()

这工作正常,它会画两条线,但在同一张图表上。

我想在单独的图表上绘制每条线。如果图表彼此相邻,而不是一个接一个,那就太好了。

我知道我可以将第二行放在下一个单元格中,然后我会得到两个图表。但我希望图表彼此靠近,因为它们代表相同的逻辑单元。

4

5 回答 5

127

您还可以在每次绘图后调用 show() 函数。例如

   plt.plot(a)
   plt.show()
   plt.plot(b)
   plt.show()
于 2013-08-04T19:21:25.463 回答
96

首先制作多个轴并将它们传递给 Pandas 绘图函数,例如:

fig, axs = plt.subplots(1,2)

df['korisnika'].plot(ax=axs[0])
df['osiguranika'].plot(ax=axs[1])

它仍然为您提供 1 个数字,但相邻有两个不同的图。

于 2013-05-06T06:18:52.290 回答
14

像这样的东西:

import matplotlib.pyplot as plt
... code for plot 1 ...
plt.show()
... code for plot 2...
plt.show()

请注意,如果您使用该seaborn软件包进行绘图,这也将起作用:

import matplotlib.pyplot as plt
import seaborn as sns
sns.barplot(... code for plot 1 ...) # plot 1
plt.show()
sns.barplot(... code for plot 2 ...) # plot 2
plt.show()
于 2017-10-24T21:42:04.967 回答
11

另一种方式,多样化。虽然这比其他的灵活一些。不幸的是,这些图表显示在另一个之上,而不是您在原始问题中确实要求的并排显示。但它非常简洁。

df.plot(subplots=True)

如果数据框有两个以上的系列,并且您只想绘制这两个系列,则需要替换dfdf[['korisnika','osiguranika']].

于 2014-07-26T09:03:01.957 回答
2

我不知道这是否是新功能,但这将绘制在单独的数字上:

df.plot(y='korisnika')
df.plot(y='osiguranika')

虽然这将绘制在同一个图上:(就像操作中的代码一样)

df.plot(y=['korisnika','osiguranika'])

我发现这个问题是因为我使用的是前一种方法并希望它们绘制在同一个图上,所以你的问题实际上是我的答案。

于 2016-08-23T14:29:58.873 回答