Python 带有颜色渐变填充的Matplotlib矩形

Python 带有颜色渐变填充的Matplotlib矩形,python,matplotlib,Python,Matplotlib,我想在轴实例(ax1)坐标系中的任意位置和任意尺寸处绘制一个从左到右渐变颜色填充的矩形 我的第一个想法是创建一个路径补丁,并以某种方式将其填充设置为颜色渐变。但据报道,没有办法做到这一点 接下来,我尝试使用颜色条。我使用fig.add_轴([左、下、宽、高])创建了第二个axes实例ax2,并添加了一个颜色条 ax2 = fig.add_axes([0, 0, width, height/8]) colors = [grad_start_color, grad_end_color] index

我想在轴实例(ax1)坐标系中的任意位置和任意尺寸处绘制一个从左到右渐变颜色填充的矩形

我的第一个想法是创建一个路径补丁,并以某种方式将其填充设置为颜色渐变。但据报道,没有办法做到这一点

接下来,我尝试使用颜色条。我使用
fig.add_轴([左、下、宽、高])
创建了第二个axes实例ax2,并添加了一个颜色条

ax2 = fig.add_axes([0, 0, width, height/8])
colors = [grad_start_color, grad_end_color]
index  = [0.0, 1.0]
cm = LinearSegmentedColormap.from_list('my_colormap', zip(index, colors))
colorbar.ColorbarBase(ax2, cmap=cm, orientation='horizontal')
但是传递到
图添加轴()
的位置参数位于图的坐标系中,并且与ax1的坐标系不匹配


我该怎么做?

你解决过这个问题吗?我也想要同样的结果,通过坐标映射找到了答案


希望这能帮助将来需要类似功能的任何人。最后,我使用了一个由面片对象组成的网格。

我一直在问自己一个类似的问题,并花了一些时间寻找答案,最终发现这可以很容易地通过以下方法实现:

可以指定颜色贴图、要使用的插值以及更多内容。另外一件事,我发现非常有趣,就是可以指定要使用的颜色贴图的哪一部分。这是通过
vmin
vmax
实现的:

pyplot.imshow([[64, 192], [64, 192]], 
  cmap = pyplot.cm.Greens, 
  interpolation = 'bicubic', 
  vmin = 0, vmax = 255
)

灵感来自


补充说明:
我选择了
X=[[0,1.],[0,1.]
使渐变从左向右变化。通过将数组设置为
X=[[0,0.],[1,1.]
,可以得到从上到下的渐变。通常,可以指定每个角的颜色,其中在
X=[[i00,i01],[i10,i11]
i00
i01
i10
i11
中分别指定左上角、右上角、左下角和右下角的颜色。增加
X
的大小显然可以为更具体的点设置颜色。

我从未使用过它,但这可能会帮助您重新计算从ax1到图的坐标:还有一个注意事项:如果您将来想设置
xlim
/
ylim
,您可能需要使用参数
aspect='auto'
。。。
from matplotlib import pyplot

pyplot.imshow([[0.,1.], [0.,1.]], 
  cmap = pyplot.cm.Greens, 
  interpolation = 'bicubic'
)
pyplot.imshow([[64, 192], [64, 192]], 
  cmap = pyplot.cm.Greens, 
  interpolation = 'bicubic', 
  vmin = 0, vmax = 255
)