web-dev-qa-db-ja.com

同じIPython Notebookセルで複数のグラフを作成する

IPython Notebookを開始しました

ipython notebook --pylab inline

これは1つのセルの私のコードです

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

これは正常に機能しています。2本の線を描画しますが、同じチャート上にあります。

それぞれの線を別々のチャートに描きたいです。そして、チャートが次々にではなく、隣り合っていれば素晴らしいことです。

次のセルに2行目を配置できることを知っているので、2つのグラフが表示されます。しかし、同じ論理ユニットを表すため、チャートを互いに近づけたいと思います。

70
WebOrCode

最初に複数の軸を作成し、それらをPandasプロット関数に渡します:

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

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

それでも1つの図が表示されますが、2つの異なるプロットが隣り合っています。

74
Rutger Kassies

各プロットの後にshow()関数を呼び出すこともできます。例えば

   plt.plot(a)
   plt.show()
   plt.plot(b)
   plt.show()
81
Tooblippe

別の方法、多様性のために。これは他のものよりもやや柔軟性に欠けますが。残念ながら、グラフは、元の質問でリクエストした横並びではなく、上下に表示されます。しかし、それは非常に簡潔です。

df.plot(subplots=True)

データフレームに2つ以上のシリーズがあり、これらの2つだけをプロットする場合は、dfdf[['korisnika','osiguranika']]に置き換える必要があります。

7
Luciano

このようなもの:

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

これが新しい機能かどうかはわかりませんが、これは別の図にプロットされます。

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

これは同じ図にプロットします:(opのコードのように)

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

前者の方法を使用していて、同じ図にプロットしたかったので、この質問を見つけました。そのため、実際にはあなたの質問が私の答えでした。

1
steven