我有以下几行代码来生成热图(
pcolormesh
)。
import matplotlib.pyplot as plt
import numpy as np
vals = np.linspace(-np.pi/2, np.pi/2, 101)
x, y = np.meshgrid(vals, vals)
z = np.abs(np.sinc(x) * np.sinc(y))
xDeg = np.rad2deg(x)
yDeg = np.rad2deg(y)
plt.pcolormesh(xDeg, yDeg, z, cmap='jet', vmin=0, vmax=1)
plt.colorbar()
plt.axis([-90, 90, -90, 90])
ticks = np.linspace(-90, 90, 13)
plt.xticks(ticks)
plt.yticks(ticks)
print(np.mean(z)) # 0.186225110029
print(np.sqrt(np.mean(z**2))) # 0.295710882276
plt.show()
我想放置:
有什么意见吗?
这比预想的要容易。我没有意识到颜色条在
plt.colorbar().ax
中有一个可绘制的轴
cb = plt.colorbar()
cb.ax.plot(0.5, mean, 'w.')
cb.ax.plot([0, 1], [rms]*2, 'w')
或者,正如@OrOrg 指出的那样,
cb = plt.colorbar()
cb.ax.plot(0.5, mean, 'w.')
cb.ax.axhline(rms, c='w')
看起来 x 轴是 (0, 1),y 轴是 (dataMin, dataMax) (0, 1)。
根据@S.A.注释,x/y 轴位于
(min(data), max(data))
之间。但是,此示例显示 x 轴为 (0, 1)
,其中 x 轴数据为 (-pi/2, pi/2)
。 Y轴确认为(min(data), max(data))
。