ホームページ  >  記事  >  バックエンド開発  >  Matplotlib を使用して Pandas の特定の列値に基づいて散布図を色付けできますか?

Matplotlib を使用して Pandas の特定の列値に基づいて散布図を色付けできますか?

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

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

Pandas と Matplotlib を使用した列の値による散布図の色付け

Matplotlib は、静的、アニメーション化された、インタラクティブな視覚化を作成するための人気のある Python ライブラリです。パイソン。この記事では、Matplotlib を使用して、Pandas DataFrame の特定の列の値に基づいて散布図に色を付ける方法について説明します。

インポートとデータ

まず、必要なライブラリをインポートします。 、Matplotlib (plt として) および Pandas (pd として) を含みます。また、「身長」、「体重」、「性別」の 3 つの列を含むサンプル データフレーム (「df」) も生成します。

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

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})</code>

2021 年 8 月更新

Seaborn は、バージョン 0.11.0 の seaborn.relplot などの新しい Figure レベル関数を導入しました。これらの関数は、FacetGrid を直接使用するよりも推奨されます。

<code class="python">sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()</code>

古い回答 (2015)

Matplotlib を直接使用したい場合は、matplotlib をマップする必要があります。パンダデータフレームのカテゴリに散布関数を追加します。これを行うには:

  • 列と色から一意のカテゴリを含む辞書を作成します。
  • 新しい "Color" 列を DataFrame に追加し、各カテゴリに対応する色を割り当てます。
  • 散布関数を使用して、引数 "c" として色の列を指定してデータをプロットします。
<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

fig = dfScatter(df)
fig.savefig('fig1.png')</code>

これらの手順に従うことで、以下に基づいて散布図に簡単に色を付けることができます。 Pandas と Matplotlib を使用した列の値。

以上がMatplotlib を使用して Pandas の特定の列値に基づいて散布図を色付けできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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