我不确定cmap
参数是否应该是fill_between
绘图命令的一部分。在您的情况下,可能要使用fill()
命令 btw。
这些填充命令创建多边形或多边形集合。多边形集合可以采用cmap
但fill
无法提供应着色的数据。
(据我所知)当然不可能按照您的意愿用渐变填充单个多边形。
下一个最好的事情是伪造它。您可以绘制阴影图像并根据创建的多边形对其进行裁剪。
# create some sample data
x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x) * 120
fig, ax = plt.subplots()
# plot only the outline of the polygon, and capture the result
poly, = ax.fill(x, y, facecolor='none')
# get the extent of the axes
xmin, xmax = ax.get_xlim()
ymin, ymax = ax.get_ylim()
# create a dummy image
img_data = np.arange(ymin,ymax,(ymax-ymin)/100.)
img_data = img_data.reshape(img_data.size,1)
# plot and clip the image
im = ax.imshow(img_data, aspect='auto', origin='lower', cmap=plt.cm.Reds_r, extent=[xmin,xmax,ymin,ymax], vmin=y.min(), vmax=30.)
im.set_clip_path(poly)
图像被赋予一个基本上在整个轴上拉伸它的范围。然后 clip_path 使其仅显示在fill
绘制多边形的位置。