ホームページ >バックエンド開発 >Python チュートリアル >定義された Matplotlib サブプロット内で Seaborn プロットをプロットするにはどうすればよいですか?
通常の matplotlib プロットと同じように、関数 matplotlib.pyplot.subplots を使用して、多くの seaborn プロットをサブプロットにプロットできます。プロットすることができます。 ただし、一部の関数には、ax パラメータがないなどの制限があります
バージョン 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 レベルのプロットのリストは次のとおりです。パラメータ:
この例ではこの場合、目的は 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 を使用してさまざまなプロットをプロットします。
詳細については、次のリソースを参照してください。
以上が定義された Matplotlib サブプロット内で Seaborn プロットをプロットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。