我几乎可以肯定这是重复的,但我在合理的时间内无法找到答案。
我的数据框有以下三列:
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。
如果您对如何实现对数颜色方案有一些了解,那也会很棒。
答案 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