列の値による散布図の色付け
Python では、Matplotlib ライブラリが散布図の美しさをカスタマイズするいくつかの手段を提供します。一般的なタスクの 1 つは、特定の列の値に基づいて色を割り当てることです。
Seaborn 統合
解決策の 1 つは、Matplotlib を基盤とする Seaborn ライブラリを活用することです。 Seaborn は、散布図を特定の列に簡単にマッピングできる sns.relplot や sns.FacetGrid などの高レベル関数を提供します。色相パラメータを指定すると、カテゴリ ラベルを含む 3 番目の列に従ってポイントに色を付けることができます。
import seaborn as sns
sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')
Matplotlib を直接使用する
あるいは、Matplotlib の plt.scatter 関数を直接使用して散布図を作成し、手動で色を指定することもできます。これには、カテゴリ ラベルを色にマッピングするカスタム カラー ディクショナリを作成する必要があります。
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
この関数を呼び出すと、指定したカテゴリ列で色付けされた散布図を生成できます。
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)
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3