列の値による散布図の色分け
Python では、Matplotlib ライブラリが散布図の美しさをカスタマイズするいくつかの手段を提供します。一般的なタスクの 1 つは、特定の列の値に基づいて色を割り当てることです。
Seaborn 統合
解決策の 1 つは、Matplotlib を基盤とする Seaborn ライブラリを活用することです。 Seaborn は、散布図を特定の列に簡単にマッピングできる sns.relplot や sns.FacetGrid などの高レベル関数を提供します。 hue パラメーターを指定すると、カテゴリ ラベルを含む 3 番目の列に従ってポイントに色を付けることができます。
<code class="python">import seaborn as sns sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')</code>
Matplotlib を直接使用する
または、Matplotlib の直接使用することもできます。 plt.scatter 関数を使用して散布図を作成し、色を手動で指定します。これには、カテゴリ ラベルを色にマッピングするカスタム カラー ディクショナリを作成する必要があります。
<code class="python">def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'): fig, ax = plt.subplots() categories = np.unique(df[catcol]) colors = np.linspace(0, 1, len(categories)) colordict = dict(zip(categories, colors)) df['Color'] = df[catcol].apply(lambda x: colordict[x]) ax.scatter(df[xcol], df[ycol], c=df.Color) return fig</code>
この関数を呼び出すことにより、指定されたカテゴリ列によって色付けされた散布図を生成できます:
<code class="python">df = pd.DataFrame({'Height': np.random.normal(size=10), 'Weight': np.random.normal(size=10), 'Gender': ["Male", "Male", "Unknown", "Male", "Male", "Female", "Did not respond", "Unknown", "Female", "Female"]}) fig = dfScatter(df)</code>
以上がPython で列の値によって散布図に色を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。