我有一个类似这样的框架:
Property Name industry
1 123 name1 industry 1
1 144 name1 industry 1
2 456 name2 industry 1
3 789 name3 industry 2
4 367 name4 industry 2
. ... ... ...
. ... ... ...
n 123 name1 industry 1
我想做一个条形图,画出每个名字有多少行,并按行业给条形图上色。我试过这样的方法:
ax = df['name'].value_counts().plot(kind='bar',
figsize=(14,8),
title="Number for each Owner Name")
ax.set_xlabel("Owner Names")
ax.set_ylabel("Frequency")
我得到以下结果:
我的问题是如何根据数据框中的行业列为条形图着色(并添加图例)。
4条答案
按热度按时间yvt65v4c1#
这是我的回答:
yqkkidmi2#
使用seaborn.countplot
参考seaborn https://seaborn.pydata.org/generated/seaborn.countplot.html的文档
kmb7vmvb3#
这可能有点太复杂了,但它确实起作用了。我首先定义了从名称到行业和从行业到颜色的Map(看起来只有两个行业,但您可以根据您的情况调整字典):
然后可以通过使用上述两个Map来生成颜色:
最后,你只需要简单地将
color
添加到绘图函数中:a6b3iqyw4#
让我们使用一些dataframe整形和matplotlib:
输出量: