我有以下几行代码来生成热图(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()
字符串
它产生了这个图像:
我想放置:
1.颜色条上的标记位于平均值(0.186)处。
1.颜色条上RMS值(0.295)处的水平线。
有什么建议吗?
1条答案
按热度按时间dfty9e191#
这比预期的要容易。我没有意识到colorbar在
plt.colorbar().ax
中有一个坐标轴字符串
或者,正如@ Orders指出的那样,
型
看起来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))
。x1c 0d1x的数据