「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Matplotlib を使用してさまざまなカテゴリレベルの異なる色をプロットするにはどうすればよいですか?

Matplotlib を使用してさまざまなカテゴリレベルの異なる色をプロットするにはどうすればよいですか?

2024 年 11 月 4 日に公開
ブラウズ:604

How Do I Use Matplotlib to Plot Distinct Colors for Various Categorical Levels?

Matplotlib のみを使用して Python でさまざまなカテゴリレベルに異なる色をプロットする方法

はじめに

この記事では、Python で散布図を作成する方法について説明しますmatplotlib を使用します。各色は異なるカテゴリレベルを表します。このアプローチでは、Python 用の seaborn や ggplot などの補助プロット パッケージの使用を回避します。

Matplotlib を使用

Matplotlib は、色のカスタマイズを可能にする plt.scatter の c 引数を提供します。以下に例を示します:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Scatter plot with colors
plt.scatter(df['carat'], df['price'], c=df['color'].map(colors))
plt.show()

map(colors) 関数は、「ダイヤモンド」の色を「プロット」の色にマップします。

seaborn を使用

この記事は matplotlib に焦点を当てていますが、 、seaborn は便利なソリューションも提供していることを言及する価値があります:

import seaborn as sns

# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)

pandas.DataFrame.groupby & pandas.DataFrame.plot

手動アプローチの場合、パンダを使用して色ごとにグループ化し、各グループをプロットできます個別に:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Group by color and plot
grouped = df.groupby('color')
for key, group in grouped:
    group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key])

plt.show()

これは、以前と同じ DataFrame を想定しており、プロット プロセス中に手動で色を割り当てます。

結論

この記事では、さまざまな色をプロットする方法を説明しました。 matplotlib を使用した Python のさまざまなカテゴリレベル、seaborn を使用した追加オプション、および pandas を使用した手動アプローチ。

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

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

Copyright© 2022 湘ICP备2022001581号-3