我在使用彩色地图时遇到了一些麻烦。基本上,我想要制作的内容与下图相似。
在底部子图上,我希望能够绘制相关颜色,但是跨越子图的整个背景。它看起来就像是整个图上的颜色图,没有绘制线条或点。它应该仍然对应于散点图中显示的颜色。
有可能这样做吗?我理想的做法是将此背景置于顶部子图下。 (y标度是不同的单位)
感谢和帮助。
底部散点子图的代码:
x = np.arange(len(wind))
y = wind
t = y
plt.scatter(x, y, c=t)
风是一维数组
答案 0 :(得分:5)
您可以使用imshow显示风阵列。它需要重新整形为2D数组,但“高度”尺寸可以是长度1.将顶部轴的尺寸设置为与其对齐。
wind = np.random.randn(100) + np.random.randn(100).cumsum() * 0.5
x = np.arange(len(wind))
y = wind
t = y
fig, ax = plt.subplots(2,1,figsize=(10,6))
ax[0].plot(x,y)
ax[1].plot(x, 100- y * 10, lw=2, c='black')
ymin, ymax = ax[1].get_ybound()
xmin, xmax = ax[1].get_xbound()
im = ax[1].imshow(y.reshape(1, y.size), extent=[xmin,xmax,ymin,ymax], interpolation='none', alpha=.5, cmap=plt.cm.RdYlGn_r)
ax[1].set_aspect(ax[0].get_aspect())
cax = fig.add_axes([.95,0.3,0.01,0.4])
cb = plt.colorbar(im, cax=cax)
cb.set_label('Y parameter [-]')
如果你想将它用作'背景',你应该首先绘制你想要的任何东西。然后抓住底部图的范围并将其设置为imshow
的范围。您还可以使用imshow
cmap=
的任何色彩映射