パンダプロットの何が問題になっていますか?

Source python matplotlib plot pandas

私はWesMcKinneyの本をフォローしていて、パンダを紹介するセクションで、パンダのデータフレームをプロットする簡単な例を示しています。これが私が書いた行です:
tz_counts = frame['tz'].value_counts() # frame is a Data Frame
tz_counts[:10] # works fine till here. I can see the key-value I wanted
tz_counts[:10].plot(kind='barh', rot=0)

画面に次のような行を印刷するだけです
<matplotlib.axes.AxesSubplot object at 0x3d14ed0>

matplotlibのplot関数で期待するようにプロットウィンドウを表示するのではなく。ここで何が問題になっていますか?どうすればそれを機能させることができますか?
推奨答え
Matplotlibは、「インタラクティブ」モードでない限り、指示するまでプロットを表示しません。

簡単な回答:プロットを表示する準備ができたら、plt.show()を呼び出します。

これにより、使用しているバックエンドのGUIメインループが開始されるため、ブロックされます。 (つまり、ウィンドウを閉じるまで実行は停止します)

実行を停止せずに自動的に表示する場合は、plt.ion()を使用するか、ipython --pylabを使用してinteractive modeをオンにします。

ただし、ipythonで--pylabモードを使用すると、numpy、matplotlib.pyplot、およびその他のいくつかのものがすべてグローバル名前空間にインポートされます。これはインタラクティブな使用には便利ですが、非常に悪い習慣を教え、標準ライブラリの関数(minmaxなど)を上書きします。

グローバルインポートを回避するために、「pylab」モードを使用せずに、ipythonでmatplotlibのインタラクティブモードを引き続き使用できます。 plt.ion()を呼び出すだけです

MatplotlibのデフォルトのTkAggバックエンドは、(ipythonだけでなく)任意のPythonシェルとのインタラクティブモードで動作します。ただし、他のバックエンドは、GUIメインループが別のスレッドで実行されない限り、それ以上の実行をブロックすることを回避できません。別のバックエンドを使用している場合は、ipythonオプションを使用してこれを--gui=<backend>に指示する必要があります。
その他答え 1
使用してみてください:
%matplotlib 
tz_counts = frame['tz'].value_counts()
tz_counts[:10].plot(kind='barh', rot=0)

%matplotlibを使用すると、pylabおよびnumpyからの*のインポートが防止され、変数のクラバリングが防止されます。

関連記事

Eclipseモジュール 'xxx.war'のデプロイメント記述子をロードまたは検出できません
ブートストラップ3を使用してページ内のGoogleグラフを左揃えにしますか?
特定の値の関数を作成するときのpython / numpyのAttributeError
matplotlibプロットの上に目盛りラベルを表示する方法は?
リスト内包表記なしでリスト内の要素を置き換える、スライスする、または[]を使用する