带有色相的Dataframe中的颜色编码Barplot

时间:2019-12-22 11:52:41

标签: pandas dataframe matplotlib bar-chart seaborn

我在Google上搜索了很多东西,在这里也阅读了很多文章,但是我仍然不知道如何根据以下数据创建合适的条形图。

这只是一个例子: df5 = pd.DataFrame((['tag1',2019,320],['tag2',2019,320],['tag1',2018,53],['tag3',2018,123],['tag2',2017,76],['tag3',2017,324]), columns=['tags', 'year', 'hits'])

In [41]: df5
Out[41]:
   tags  year  hits
0  tag1  2019   320
1  tag2  2019   320
2  tag1  2018    53
3  tag3  2018   123
4  tag2  2017    76
5  tag3  2017   324

因此,每年都有标签以及使用了该标签的次数。

我想做类似的事情:

plt.figure(figsize=(15, 5))
sns.barplot(hue=df5['tags'].values,x=df5.year.values, y=df5['hits'].values,dodge=True,orient='v',palette=("Set1"))
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.xlabel('Years')
plt.ylabel('Total Articles')
plt.xticks(rotation='vertical')
plt.subplots_adjust(bottom=0.4,right=0.8)
plt.show()

enter image description here

即使只有3年的数据并且只有3个标签,该图也不是最好的,但是如果我使用20年的数据:

enter image description here

我知道这是因为hue导致条形变得非常狭窄,基本上这个数字无法使用。 即使我使用dodge=False也不起作用,因为可能有具有相同点击次数的标签,例如:

enter image description here

所以我的问题是什么是最好的解决方案/方法?目前,我尝试使用seaborn,但也许还有一个我不知道的更好的选项/解决方案。

如果您有想法,请告诉我。 我在想也许两个x轴分别是一年和一个用于标签。...

谢谢

0 个答案:

没有答案