如何在不使用 matplotlib 缩放图像图中的图像的情况下重新缩放轴?

How can I rescale axis without scaling the image in an image plot with matplotlib?

我有一个像这样的简单图像图:

import numpy as np
import matplotlib.pyplot as plt

data = np.arange(25)
data.shape = (5,5)

plt.imshow(data, interpolation='none')
plt.show()

在这种情况下,输入数据是一个 5x5 矩阵。轴上的刻度从 0 到 4。我将如何在不更改显示图像的情况下将此范围更改为 10 到 50?我想在不缩放图像的情况下重新缩放轴。

使用 imshowextent 属性,您可以在轴上放置任何可能的范围,而无需更改绘图。

import numpy as np
import matplotlib.pyplot as plt

data = np.arange(25)
data.shape = (5,5)

plt.imshow(data, interpolation='none', extent=(-3, 27, 5, 31))
plt.show()

这给出:

一般来说,对于任何情节,您都可以使用 xticksyticks,例如

import numpy as np
import matplotlib.pyplot as plt

data = np.arange(25)
data.shape = (5,5)

plt.imshow(data, interpolation='none')
plt.xticks([0, 1, 2, 3, 4], [10,20,30,40,50])
plt.yticks([0, 1, 2, 3, 4], [10,20,30,40,50])
plt.show()