将3个大熊猫数据框绘制为热图

时间:2015-09-04 17:50:00

标签: python pandas matplotlib dataframe

我几乎可以肯定这是重复的,但我在合理的时间内无法找到答案。

我的数据框有以下三列:

    COLS  FUNCS  FLUFF
32     1      1    3.24707
33     1      2   14.89260
34     1      3   48.60840
35     1      4   73.68160
36     2      1    4.19922
37     2      2   64.89260
38     2      3   87.91500
39     2      4   91.01560
40     4      1   23.58400
41     4      2   87.89060
42     4      3   95.38570
43     4      4   98.33980
44     8      1   34.47270
45     8      2   95.43460
46     8      3   99.04790
47     8      4   99.80470

我想绘制这些数据的热图,其中水平轴为COLS,垂直轴为FUNCS,单元格根据FLUFF缩放。 我不想使用seaborn 。我想专门使用matplotlib和/或pandas。

如果您对如何实现对数颜色方案有一些了解,那也会很棒。

1 个答案:

答案 0 :(得分:1)

df.set_index(['COLS', 'FUNCS']).FLUFF.unstack(0).pipe(plt.imshow)

应该为你做。

正如cel在评论中提到的,如果您的数据实际上很稀疏,您可能需要.reindex插入所有行和列,并适当填充NaN。

对于日志比例,请查看http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.LogFormatter