Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何手动为分类变量的类型指定颜色?_Python_Matplotlib_Seaborn - Fatal编程技术网

Python 如何手动为分类变量的类型指定颜色?

Python 如何手动为分类变量的类型指定颜色?,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我在下面的代码中创建了两个绘图。我在JobDomain列中有如下类别值 第一类 第二类 第三类 下面的代码为上述类别生成两个不同颜色的绘图。我需要保持这两个情节有相同的颜色为这3个类别 colors = ["#F28E2B", "#4E79A7","#79706E"] edu = (df.groupby(['JobDomain'])['sal'] .value_counts(normalize=True)

我在下面的代码中创建了两个绘图。我在
JobDomain
列中有如下类别值

  • 第一类
  • 第二类
  • 第三类
下面的代码为上述类别生成两个不同颜色的绘图。我需要保持这两个情节有相同的颜色为这3个类别

colors = ["#F28E2B", "#4E79A7","#79706E"]

edu = (df.groupby(['JobDomain'])['sal']
                         .value_counts(normalize=True)
                         .rename('Percentage')
                         .mul(100)
                         .reset_index()
                         .sort_values('sal'))

coding = (df.groupby(['JobDomain'])['sal2']
                         .value_counts(normalize=True)
                         .rename('Percentage')
                         .mul(100)
                         .reset_index()
                         .sort_values('sal2'))

fig, axs = plt.subplots(ncols=2,figsize=(20, 6),sharey=True)

plt.subplots_adjust(wspace=0.4)

p=sns.barplot(x="sal",y="Percentage",hue="JobDomain",data=edu,
              ax=axs[0],palette=sns.color_palette(colors))
q=sns.barplot(x="sal2",y="Percentage",hue="JobDomain",data=coding,
              ax=axs[1],palette=sns.color_palette(colors))

通过创建一个字典,将每个cathegory映射到一种颜色(并将其传递到
调色板
,而不调用
sns.color\u调色板
)。例如:

导入seaborn作为sns
从导入数据帧
从matplotlib导入pyplot作为plt
df=数据帧({'JobDomain':['Cat1','Cat2','Cat3','Cat1','Cat3'],
"sal":[110,90,100,200,130],,
“sal2”:[100280320240440]
})
颜色={'Cat1':“#F28E2B”、'Cat2':“#4E79A7”、'Cat3':“#79706E”}
edu=(df.groupby(['JobDomain'])['sal']
.value\u计数(标准化=真)
.rename('百分比')
穆尔先生(100)
.reset_index()
.sort_值('sal'))
编码=(df.groupby(['JobDomain'])['sal2']
.value\u计数(标准化=真)
.rename('百分比')
穆尔先生(100)
.reset_index()
.sort_值('sal2'))
图,axs=plt.子批次(ncols=2,figsize=(20,6),sharey=True)
plt.子批次调整(wspace=0.4)
p=sns.barplot(x=“sal”,y=“Percentage”,hue=“JobDomain”,data=edu,ax=axs[0],palete=colors)
q=sns.barplot(x=“sal2”,y=“百分比”,hue=“JobDomain”,数据=编码,ax=axs[1],调色板=颜色)
h、 l=p.获取\u图例\u句柄\u标签()
l、 h=zip(*已排序(zip(l,h)))
p、 图例(h、l、title=“工作域”)
q、 图例(h、l、title=“工作域”)
plt.show()
PS:要再次对图例排序,请在
plt.show()之前插入:

h,l=p.获取\u图例\u句柄\u标签()
l、 h=zip(*已排序(zip(l,h)))
p、 图例(h、l、title=“工作域”)
q、 图例(h、l、title=“工作域”)

创建一个字典,将每个cathegory映射到一种颜色(并将其传递到
调色板
,而不调用
sns.color\u调色板
)。例如:

导入seaborn作为sns
从导入数据帧
从matplotlib导入pyplot作为plt
df=数据帧({'JobDomain':['Cat1','Cat2','Cat3','Cat1','Cat3'],
"sal":[110,90,100,200,130],,
“sal2”:[100280320240440]
})
颜色={'Cat1':“#F28E2B”、'Cat2':“#4E79A7”、'Cat3':“#79706E”}
edu=(df.groupby(['JobDomain'])['sal']
.value\u计数(标准化=真)
.rename('百分比')
穆尔先生(100)
.reset_index()
.sort_值('sal'))
编码=(df.groupby(['JobDomain'])['sal2']
.value\u计数(标准化=真)
.rename('百分比')
穆尔先生(100)
.reset_index()
.sort_值('sal2'))
图,axs=plt.子批次(ncols=2,figsize=(20,6),sharey=True)
plt.子批次调整(wspace=0.4)
p=sns.barplot(x=“sal”,y=“Percentage”,hue=“JobDomain”,data=edu,ax=axs[0],palete=colors)
q=sns.barplot(x=“sal2”,y=“百分比”,hue=“JobDomain”,数据=编码,ax=axs[1],调色板=颜色)
h、 l=p.获取\u图例\u句柄\u标签()
l、 h=zip(*已排序(zip(l,h)))
p、 图例(h、l、title=“工作域”)
q、 图例(h、l、title=“工作域”)
plt.show()
PS:要再次对图例排序,请在
plt.show()之前插入:

h,l=p.获取\u图例\u句柄\u标签()
l、 h=zip(*已排序(zip(l,h)))
p、 图例(h、l、title=“工作域”)
q、 图例(h、l、title=“工作域”)

也许您可以省略
.sort\u值('sal')
.sort\u值('sal2')
?这样,jobdomains在两个图中的顺序就相同了。也许您可以省略
。sort\u values('sal')
。sort\u values('sal2')
?这样,jobdomains在两个图中的顺序将相同。谢谢:)。。。还有一个问题,我们如何对颜色图例进行排序,以便按顺序显示Cat1、Cat2和Cat3?可能只需省略
。排序值('sal2')
?包含一些操纵legendyes的技巧,但它也会更改绘图中的条形图位置。是否有任何选项仅在“颜色军团”框中进行手动更改?谢谢。我查一下这篇文章。谢谢:)。。。还有一个问题,我们如何对颜色图例进行排序,以便按顺序显示Cat1、Cat2和Cat3?可能只需省略
。排序值('sal2')
?包含一些操纵legendyes的技巧,但它也会更改绘图中的条形图位置。是否有任何选项仅在“颜色军团”框中进行手动更改?谢谢。我查一下这篇文章。