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表
使其不必要