我用pcolor绘制了热图:
df = df.groupby(['d','f'])['beta'].sum()
beta_df = df.unstack('f')
plt.pcolor(beta_df)
beta_df的大小为35x35,从此开始:
f 0.05 0.06 0.07 0.08 0.09 0.10 ...
d
0.050000 0.993125 0.993264 0.991511 0.995148 1.000422 1.003847
0.105714 0.997931 0.998003 0.997459 1.000743 1.005858 1.001873
...
但是,轴包含0到35之间的整数,而不是f和d的值。如何解决?
答案 0 :(得分:3)
我发现这是唯一保持比例的轴校正方法:
tick_spacing = 10
plt.yticks(np.arange(0, len(df.index), tick_spacing), df.index[0::tick_spacing])
plt.xticks(np.arange(0, len(df.columns), tick_spacing), df.columns[0::tick_spacing])
答案 1 :(得分:2)
首先,建议您使用pcolormesh
代替pcolor
(更快,更灵活)。您需要告诉pcolormesh
数据的x和y范围是什么。这是通过使用x和y值的数组调用它来完成的。假设你的2D数组被称为c
,你可以这样做:
plt.pcolormesh(x, y, c)
其中x
是具有x值的数组,y
是具有y值的数组。您需要确保x
和y
的尺寸与c
的形状相匹配。
答案 2 :(得分:0)
您可以使用plt.axis()
方法设置轴值。所以我认为你应该做的事情(如果我能正确地记住我的熊猫):
xmin = beta_df.index.min()
xmax = beta_df.index.max()
ymax = beta_df.max()
ymin = beta_df.min()
然后:
plt.axis([xmin, xmax, ymin, ymax])
或类似的东西。