1. ホーム
  2. python

[解決済み] Seabornのプロットが表示されない

2022-02-28 13:53:15

質問

何かとても簡単なことを忘れているような気がするのですが、シーボーンで特定のプロットを動作させることができないのです。

そうすると

import seaborn as sns

matplotlibで普通に作ったプロットはSeabornのスタイルになる(背景にグレーのグリッドがある)。

しかし、もし私が例のようなことをしようとしたら。

In [1]: import seaborn as sns

In [2]: sns.set()

In [3]: df = sns.load_dataset('iris')

In [4]: sns.pairplot(df, hue='species', size=2.5)
Out[4]: <seaborn.axisgrid.PairGrid at 0x3e59150>

pairplot 関数は PairGrid オブジェクトを返しますが、プロットが表示されません。

matplotlibは正常に機能しているようで、他のmatplotlibのプロットにはSeabornスタイルが適用されるのに、Seaborn関数は何もしないようなので少し混乱しています。この問題が何なのか、どなたかご存知でしょうか?

解決するには?

seabornを使って作成したプロットは、通常のmatplotlibのプロットのように表示する必要があります。 これは

plt.show()

関数は matplotlib のものです。

元々はseabornから既にインポートされているmatplotlibオブジェクトを使用する解決策を投稿したのですが、( sns.plt.show() しかし、これはバッドプラクティスであると考えられています。したがって、単純に matplotlib.pyplot モジュールでプロットを表示します。

import matplotlib.pyplot as plt
plt.show()

IPython ノートブックが使われている場合、インラインバックエンドはプロットごとに show を呼び出す必要をなくすために呼び出すことができます。それぞれのマジックは

%matplotlib inline