+-

我想在我的轴实例(ax1)坐标系中绘制一个矩形,从左到右,在任意位置使用渐变颜色填充.
我的第一个想法是创建一个路径补丁,并以某种方式将其填充设置为颜色渐变.但根据THIS POST,没有办法做到这一点.
接下来我尝试使用彩条.我使用fig.add_axes([left,bottom,width,height])创建了第二个轴实例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')
但是传递给fig.add_axes()的位置参数在图的坐标系中,并且与ax1的坐标系不匹配.
我怎样才能做到这一点?
最佳答案
我一直在问自己一个类似的问题,并花了一些时间寻找答案,最终发现这很容易在
imshow完成:
from matplotlib import pyplot
pyplot.imshow([[0.,1.], [0.,1.]],
cmap = pyplot.cm.Greens,
interpolation = 'bicubic'
)

可以指定色彩图,使用什么插值等等.我觉得非常有趣的另一件事是可以指定使用色彩映射的哪个部分.这是通过vmin和vmax完成的:
pyplot.imshow([[64, 192], [64, 192]],
cmap = pyplot.cm.Greens,
interpolation = 'bicubic',
vmin = 0, vmax = 255
)

灵感来自this example
附加说明:
我选择X = [[0,1.],[0,1.]]来使梯度从左向右变化.通过将数组设置为类似X = [[0.,0.],[1.,1.]],您可以从上到下获得渐变.一般情况下,可以指定每个角落的颜色,其中X = [[i00,i01],[i10,i11]],i00,i01,i10和i11指定左上角,右上角的颜色,分别是左下角和右下角.增加X的大小显然允许为更具体的点设置颜色.
点击查看更多相关文章
转载注明原文:python – Matplotlib矩形与颜色渐变填充 - 乐贴网