「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python で列の値によって散布図に色を付けるにはどうすればよいですか?

Python で列の値によって散布図に色を付けるにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:771

How to Color Scatter Plots by Column Values in Python?

列の値による散布図の色付け

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)
リリースステートメント この記事は次の場所に転載されています: 1729320496 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3