python – Seaborn – 根据色调名称更改条形颜色

python – Seaborn – 根据色调名称更改条形颜色,第1张

概述我正在使用seaborn和pandas从不同(但相关)的数据中创建一些条形图.这两个数据集共享一个用作色调的公共类别,因此我想确保在这两个图中该类别的条形颜色匹配.我怎么能这样做? 一个基本的例子如下: import seaborn as snsimport pandas as pdimport matplotlib.pyplot as pltsns.set_style('darkgrid' 我正在使用seaborn和pandas从不同(但相关)的数据中创建一些条形图.这两个数据集共享一个用作色调的公共类别,因此我想确保在这两个图中该类别的条形颜色匹配.我怎么能这样做?

一个基本的例子如下:

import seaborn as snsimport pandas as pdimport matplotlib.pyplot as pltsns.set_style('darkgrID')fig,ax = plt.subplots()a = pd.DataFrame({'Program': ['A','A','B','Total','Total'],'Scenario': ['X','Y','X','Y'],'Duration': [4,3,5,4,9,7]})g = sns.barplot(data=a,x='Scenario',y='Duration',hue='Program',ci=None)plt.tight_layout()plt.savefig('3 progs.png')plt.clf()b = pd.DataFrame({'Program': ['A','C',2,12,9]})g = sns.barplot(data=b,ci=None)plt.tight_layout()plt.savefig('4 progs.png')

制作两张图:


在这个例子中,我想确保Total类别在两个图形中使用相同的颜色(例如黑色)

解决方法 A.使用颜色列表

确保两个图中相同类别具有相同颜色的最简单解决方案是在创建绘图时手动指定颜色.

# First bar plotax = sns.barplot(data=a,ci=None,palette=["C0","C1","k"])# ...# Second bar plotax2 = sns.barplot(data=b,"C2","k"])

颜色“C2”(颜色循环的第三种颜色)仅存在于存在程序C的第二个图中.

B.使用字典

您也可以使用字典,将色调列中的值映射到颜色,而不是列表.

palette ={"A":"C0","B":"C1","C":"C2","Total":"k"}ax = sns.barplot(data=a,palette=palette)# ...ax2 = sns.barplot(data=b,palette=palette)

在这两种情况下,输出将如下所示:

C.自动字典

最后,您可以根据色调列中的值自动创建此字典.这里的优点是你既不需要知道颜色,也不需要知道各个数据帧之前的值.

import seaborn as snsimport pandas as pdimport matplotlib.pyplot as pltsns.set_style('darkgrID')fig,7]})b = pd.DataFrame({'Program': ['A',9]})unique = a["Program"].append(b["Program"]).unique()palette = dict(zip(unique,sns.color_palette()))palette.update({"Total":"k"})ax = sns.barplot(data=a,palette=palette)plt.tight_layout()plt.figure()ax2 = sns.barplot(data=b,palette=palette)plt.tight_layout()plt.show()
总结

以上是内存溢出为你收集整理的python – Seaborn – 根据色调名称更改条形颜色全部内容,希望文章能够帮你解决python – Seaborn – 根据色调名称更改条形颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1194029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存