更新时间:2023-01-28 08:05:57
I have been asking myself a similar question and spent some time looking for the answer to find in the end that this can quite easily be done by imshow
:
from matplotlib import pyplot
pyplot.imshow([[0.,1.], [0.,1.]],
cmap = pyplot.cm.Greens,
interpolation = 'bicubic'
)
It is possible to specify a colormap, what interpolation to use and much more. One additional thing, I find very interesting, is the possibility to specify which part of the colormap to use. This is done by means of vmin
and vmax
:
pyplot.imshow([[64, 192], [64, 192]],
cmap = pyplot.cm.Greens,
interpolation = 'bicubic',
vmin = 0, vmax = 255
)
Inspired by this example
I chose X = [[0.,1.], [0.,1.]]
to make the gradient change from left to right. By setting the array to something like X = [[0.,0.], [1.,1.]]
, you get a gradient from top to bottom. In general, it is possible to specify the colour for each corner where in X = [[i00, i01],[i10, i11]]
, i00
, i01
, i10
and i11
specify colours for the upper-left, upper-right, lower-left and lower-right corners respectively. Increasing the size of X
obviously allows to set colours for more specific points.