ホームページ  >  記事  >  バックエンド開発  >  Python で列の値によって散布図を色分けする方法は?

Python で列の値によって散布図を色分けする方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-19 14:47:02591ブラウズ

How to Color-Code Scatter Plots by Column Values in Python?

Python での列の値による散布図の色分け

データ視覚化では、さまざまなカテゴリに色を割り当てると、明瞭さが向上し、パターンが明らかになります。この機能は R の ggplot2 ですぐに利用できますが、pandas と matplotlib を使用して Python で同じことを実現するにはどうすればよいですか?

更新: Seaborn Enhancements

元の回答以来, Seaborn は、有益で視覚的に魅力的なプロットを作成するための強力なライブラリとして登場しました。最近の更新では、列の値に基づいて散布図に色を付けるための便利な関数が提供されています。

  • seaborn.relplot の使用: この高レベル関数は、matplotlib.pyplot.scatter と Seaborn の機能を組み合わせたものです。ファセットグリッド。指定された色相と順序パラメーターに基づいてカラー コーディングを自動的に処理します。
  • matplotlib.pyplot.scatter を seaborn.FacetGrid にマッピング: 元のアプローチと同様に、散布関数をFacetGrid を使用し、色相に基づいて色をカスタマイズします。

オリジナルの Pandas と Matplotlib のアプローチ

Matplotlib を使用した直接的なアプローチを求める人のために、色を割り当てるカスタム関数を次に示します。カテゴリ列に基づいてポイントに変換します:

<code class="python">import matplotlib.pyplot as plt
import pandas as pd

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.append(np.random.normal(6, 0.25, size=5), np.random.normal(5.4, 0.25, size=5)),
                   'Weight': np.append(np.random.normal(180, 20, size=5), np.random.normal(140, 20, size=5)),
                   'Gender': ["Male", "Male", "Male", "Male", "Male",
                              "Female", "Female", "Female", "Female", "Female"]})</code>

関数 dfScatter の呼び出しデータフレームを使用して:

<code class="python">fig = dfScatter(df)
fig.savefig('color_coded_scatterplot.png')</code>

ポイントが性別によって色分けされた散布図を作成します:

[性別によって色分けされた散布図のイメージ]

Seaborn の高度な機能とカスタム dfScatter 関数は、Python の散布図に色分けを追加するための柔軟なオプションを提供し、データの視覚化をより有益で視覚的に魅力的なものにします。

以上がPython で列の値によって散布図を色分けする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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