ホームページ  >  記事  >  バックエンド開発  >  定義された Matplotlib サブプロット内で Seaborn プロットをプロットするにはどうすればよいですか?

定義された Matplotlib サブプロット内で Seaborn プロットをプロットするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 18:02:02311ブラウズ

How to Plot Seaborn Plots Within Defined Matplotlib Subplots?

seaborn は定義されたサブプロット内にプロットされません

通常の matplotlib プロットと同じように、関数 matplotlib.pyplot.subplots を使用して、多くの seaborn プロットをサブプロットにプロットできます。プロットすることができます。 ただし、一部の関数には、ax パラメータがないなどの制限があります

seaborn.distplot の廃止

バージョン 0.11 より前では、seaborn.distplot 関数はさまざまな種類のプロットに使用されていました。配布物。 この関数は seaborn 0.11 で非推奨になりました

seaborn.distplot() has been DEPRECATED in seaborn 0.11 and is replaced with the following:

displot(), a figure-level function with a similar flexibility over the kind of plot to draw. This is a FacetGrid, and does not have the ax parameter, so it will not work with matplotlib.pyplot.subplots.

histplot(), an axes-level function for plotting histograms, including with kernel density smoothing. This does have the ax parameter, so it will work with matplotlib.pyplot.subplots.

正しい関数の検索

ax パラメータを持たない seaborn 関数には、代わりに使用できる対応する軸レベルの関数があります。 。 正しい関数を見つけるには、Figure レベルのプロットに関する seaborn ドキュメントを参照して、適切な Axes レベルのプロット関数を見つけることができます。

軸のない Figure レベルのプロットのリストは次のとおりです。パラメータ:

  • relplot
  • displot
  • catplot

同じ線上に異なるプロットをプロットする

この例ではこの場合、目的は 2 つの異なるヒストグラムを同じ行にプロットすることです。 displot は Figure レベルの関数であり、ax パラメーターがないため、matplotlib.pyplot.subplots では使用できません。 この場合、使用する正しい関数は histplot です。これは、ax パラメータを持つ axes レベルの関数です。

次に、histplot を使用して 2 つの異なるヒストグラムを同じ行にプロットする例を示します。

<code class="python">import seaborn as sns
import matplotlib.pyplot as plt

# load data
penguins = sns.load_dataset("penguins", cache=False)

# select the columns to be plotted
cols = ['bill_length_mm', 'bill_depth_mm']

# create the figure and axes
fig, axes = plt.subplots(1, 2)
axes = axes.ravel()  # flattening the array makes indexing easier

for col, ax in zip(cols, axes):
    sns.histplot(data=penguins[col], kde=True, stat='density', ax=ax)

fig.tight_layout()
plt.show()</code>

これにより、同じ行に 2 つのヒストグラムがプロットされた図が生成されます。

複数のデータフレームから異なるプロットをプロットする

複数のデータフレームがある場合は、それらを組み合わせることができますpandas pd.concat を使用し、次に assign メソッドを使用して、識別用の「ソース」列を作成します。これは、row= またはcol= の指定に使用したり、色相パラメーターとして使用したりできます

<code class="python"># list of dataframe
lod = [df1, df2, df3]

# create one dataframe with a new 'source' column to use for row, col, or hue
df = pd.concat((d.assign(source=f'df{i}') for i, d in enumerate(lod, 1)), ignore_index=True)</code>

。この結合されたデータフレームを使用して、seaborn を使用してさまざまなプロットをプロットします。

詳細については、次のリソースを参照してください。

  • [Seaborn ドキュメント](https://seaborn.pydata) .org/)
  • [Matplotlib を使用したサブプロットのプロット](https://matplotlib.org/stable/tutorials/intermediate/subplots.html)
  • [Seaborn と Pandas の統合](https: //seaborn.pydata.org/tutorial/using_pandas.html)

以上が定義された Matplotlib サブプロット内で Seaborn プロットをプロットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。