一个基本的例子如下:
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 – 根据色调名称更改条形颜色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)