matplotlib令pColor轴刻度
问题描述:
我已经使用令pColor绘制热图:matplotlib令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的值。如何解决它?
答
我发现这是唯一的尺度保持轴矫正方法:
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])
答
您可以使用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])
或者类似的东西。
答
首先,建议您使用pcolormesh
而不是pcolor
(更快,更灵活)。你需要告诉pcolormesh
什么是你的数据的x和y范围。这是通过用x和y值的数组调用它来完成的。假设你的二维数组被称为c
,你做这样的:
plt.pcolormesh(x, y, c)
哪里x
与X值的数组,并y
与y值。您需要确保x
和y
的尺寸与c
的形状相匹配。
这是行不通的,因为'pcolor'没有合适的范围内。 – tiago 2014-11-24 09:49:41