在按 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'})
在 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'})