从 pandas DataFrame 制作热图

新手上路,请多包涵

我有一个从 Python 的 Pandas 包生成的数据框。如何使用 pandas 包中的 DataFrame 生成热图。

 import numpy as np
from pandas import *

Index= ['aaa','bbb','ccc','ddd','eee']
Cols = ['A', 'B', 'C','D']
df = DataFrame(abs(np.random.randn(5, 4)), index= Index, columns=Cols)

>>> df
          A         B         C         D
aaa  2.431645  1.248688  0.267648  0.613826
bbb  0.809296  1.671020  1.564420  0.347662
ccc  1.501939  1.126518  0.702019  1.596048
ddd  0.137160  0.147368  1.504663  0.202822
eee  0.134540  3.708104  0.309097  1.641090
>>>

原文由 Curious 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

你想要 matplotlib.pcolor

 import numpy as np
from pandas import DataFrame
import matplotlib.pyplot as plt

index = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
columns = ['A', 'B', 'C', 'D']
df = DataFrame(abs(np.random.randn(5, 4)), index=index, columns=columns)

plt.pcolor(df)
plt.yticks(np.arange(0.5, len(df.index), 1), df.index)
plt.xticks(np.arange(0.5, len(df.columns), 1), df.columns)
plt.show()

这给出了:

输出样本

原文由 chthonicdaemon 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于今天看这个的人,我会推荐 Seaborn heatmap() 如此 所述。

上面的示例将按如下方式完成:

 import numpy as np
from pandas import DataFrame
import seaborn as sns
%matplotlib inline

Index= ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
Cols = ['A', 'B', 'C', 'D']
df = DataFrame(abs(np.random.randn(5, 4)), index=Index, columns=Cols)

sns.heatmap(df, annot=True)

其中 %matplotlib 是为那些不熟悉的人准备的 IPython 魔法函数。

原文由 Brideau 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题