2

我在使用彩色地图时遇到了一些问题。基本上,我想要制作的内容类似于下图。

在底部的子图上,我希望能够绘制相关的颜色,但跨越子图的整个背景。即它看起来就像整个图上的颜色图,没有绘制线或点。它仍应与散点图中显示的颜色相对应。

是否有可能做到这一点?我最理想的做法是把这个背景放在最上面的子图下。(y 比例单位不同)

在此处输入图像描述

感谢和帮助。

底部散点图的代码:

x = np.arange(len(wind))
y = wind
t = y
plt.scatter(x, y, c=t)

其中风是一维数组

4

1 回答 1

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=.

于 2013-11-12T10:40:55.387 回答