在按 DataFrame 列为绘图着色时,如何设置每个值的颜色?

How can I set the colors per value when coloring plots by a DataFrame column?

在 matplotlib(特别是 pandas)中,如何将特定颜色映射到用于区分颜色的列的值?

假设我有一个专栏...

>> df["country"]
DE
EN
US
DE

...现在我想绘制 DataFrame 中每个国家颜色不同的值。我如何确定哪个国家/地区获得哪种颜色?有色图吗?不幸的是,我找不到合适的文档。

我想像这样应用字典:

# pseudo-code
colormapping = {"DE": "blue", ...}
df.plot(colorby="country", colormapping)

编辑:

这是一个示例 DataFrame。

    outlook   play  temperature country
0     sunny   True           25      DE
1     sunny   True           25      EN
2  overcast   True           19      DE
3      rain  False           21      US
4  overcast  False           33      IT
5      rain  False           27      EN
6      rain  False           22      FR
7  overcast   True           26      FR
8     sunny   True           13      FR
9     sunny   True           16      CH

您可以使用 seaborn 指定色调级别到 palette argument of a categorical plot 中相应 matplotlib 颜色的字典映射来实现此目的,如下所示:

sns.set(style="whitegrid")
sns.swarmplot(x="outlook", y="temperature", hue="country", data=df, size=8,
              palette={'DE':'b', 'EN':'g', 'US':'r','IT':'c', 'FR':'y', 'CH':'k'})