python - 如何使用 Pandas 和离散轴绘制 hexbin? (或者,任何基于颜色的绘图)

标签 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 轴来表示动物和国家,同时让颜色作为 - 所以我尝试了十六进制图。

当我尝试时

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')

我收到KeyError: 'animal'。但是,如果我对 x、y 和 C 使用 value ,则不会发生这种情况 - 我想这是因为 pandas 想要数值。如何处理离散数据(动物/国家)?

我考虑为每个轴分配一个数字并制作一个自定义轴,例如 How to plot hexbin with dates in matplotlib and pandas?建议,但我觉得可能有更简单的方法。感谢任何帮助,谢谢。

最佳答案

您只想要热图吗?

import seaborn as sns

a2 = a.pivot_table( index='animal', columns='country', values='value', fill_value=0 )

sns.heatmap(a2)

enter image description here

顺便说一句,作为一般建议,您可能还希望将值存储为分类值,而不是字符串对象来存储此类内容,尽管在此使用 pivot_table 使得在此特定示例中没有必要。

关于python - 如何使用 Pandas 和离散轴绘制 hexbin? (或者,任何基于颜色的绘图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365852/

相关文章:

python - 正则表达式将唯一字符串提取到新列,出现错误 "look-behind requires fixed-width pattern"

python - Matplotlib 保存为 pdf 未在条形图中显示阴影线 - 潜在错误?

python - 在 matplotlib 中将 x 和 y 数据作为关键字参数传递?

python - 初学者 : python subprocess. 调用数百个参数

Python - 使用套接字设置源端口号

python - 以毫秒为单位读取 python 中的 wav

python - 在 numpy/matplotlib 中以图形和数字方式求解线性二次方程组?

python - 如何在路由函数中启用仅限开发的行为

Python Pandas 将日期和时间组合成一列

python - 数据帧非常慢