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 をマップする必要があります。パンダデータフレームのカテゴリに散布関数を追加します。これを行うには:
<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 サイトの他の関連記事を参照してください。