Python 如何绘制带有熊猫和离散轴的hexbin?(或者,任何基于颜色的打印)
我有一个像Python 如何绘制带有熊猫和离散轴的hexbin?(或者,任何基于颜色的打印),python,pandas,matplotlib,plot,Python,Pandas,Matplotlib,Plot,我有一个像 animal country value 0 elephant India 5 1 camel Iran 7 2 elephant Cameroon 1 3 eagle USA 2 4 turtle Iran 3 我希望能够比较某一动物的国家,以及某一国家的动物。我认为最好的方法是使用x/y轴来表示动物和国家,同时让颜色成为值——所以我尝试了一个he
animal country value
0 elephant India 5
1 camel Iran 7
2 elephant Cameroon 1
3 eagle USA 2
4 turtle Iran 3
我希望能够比较某一动物的国家,以及某一国家的动物。我认为最好的方法是使用x/y轴来表示动物和国家,同时让颜色成为值
——所以我尝试了一个hexbin图
当我尝试
a = pd.DataFrame({
'animal': ['elephant', 'camel', 'elephant', 'eagle', 'turtle'],
'country': ['India', 'Iran', 'Cameroon', 'USA', 'Iran'],
'value': [5, 7, 1, 2, 3]
})
a.plot(kind = 'hexbin', x = 'animal', y = 'country', C = 'value')
我得到keyrerror:“动物”
。但如果我对x
、y
和C
使用value
,则不会发生这种情况-我想这是因为熊猫想要数值。如何处理离散数据(动物/国家)
我想给每一个都分配一个数字,并制作一个自定义的轴,就像建议的那样,但我觉得可能有一个更简单的方法。感谢您的帮助。您只是想要一张热图吗
import seaborn as sns
a2 = a.pivot_table( index='animal', columns='country', values='value', fill_value=0 )
sns.heatmap(a2)
顺便说一句,作为一般建议,您可能还希望将这些类型的值存储为分类对象,而不是字符串对象,尽管在这个特定示例中使用pivot\u表
使其不必要