Equivalent to matlab's imagesc in matplotlib?
Question:
I am coming to Python and numpy and matplotlib from a Matlab background. One function in matlab that I use all the time is imagesc
. Is there an exact equivalent to this somewhere in matplotlib? I know about imshow
and pcolor
, but the first doesn’t allow you to easily set the units of the axes like imagesc
, and the second makes you set the x- and y-coordinates of the boundaries of the pixels, rather than the centers of the pixels, which I do not find intuitive.
Basically, if I have an image that I want to display with x- and y-axis labels that are not pixel numbers but are numerical, like distance in mm, what is the easiest way to do it in matplotlib?
Answers:
You want the extent
kwarg
ax.imshow(data, extent=[0, 1, 0, 1])
See Imshow: extent and aspect for a more detailed example.
I am coming to Python and numpy and matplotlib from a Matlab background. One function in matlab that I use all the time is imagesc
. Is there an exact equivalent to this somewhere in matplotlib? I know about imshow
and pcolor
, but the first doesn’t allow you to easily set the units of the axes like imagesc
, and the second makes you set the x- and y-coordinates of the boundaries of the pixels, rather than the centers of the pixels, which I do not find intuitive.
Basically, if I have an image that I want to display with x- and y-axis labels that are not pixel numbers but are numerical, like distance in mm, what is the easiest way to do it in matplotlib?
You want the extent
kwarg
ax.imshow(data, extent=[0, 1, 0, 1])
See Imshow: extent and aspect for a more detailed example.