在同一个IPython Notebook单元中制作多个图表

我已经开始我的IPython笔记本

ipython notebook --pylab inline 

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

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

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

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

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

首先制作多轴,并将它们传递给pandas图function,如:

 fig, axs = plt.subplots(1,2) df['korisnika'].plot(ax=axs[0]) df['osiguranika'].plot(ax=axs[1]) 

它仍然给你一个数字,但有两个不同的情节彼此相邻。

您也可以在每个绘图之后调用show()函数。 例如

  plot(a) show() plot(b) show() 

请参阅http://nbviewer.ipython.org/6151560上的示例;

另一种方式,多样化。 虽然这比其他的稍微灵活一些。 不幸的是,这些graphics显示为一个在另一个之上,而不是并排,你在原来的问题中要求。 但它非常简洁。

 df.plot(subplots=True) 

如果数据框有两个以上的序列,而你只想绘制这两个序列,则需要用df[['korisnika','osiguranika']]replacedf[['korisnika','osiguranika']]

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

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

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

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

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

像这样的东西:

 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()