如何在不使用 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?我想在不缩放图像的情况下重新缩放轴。
使用 imshow
的 extent
属性,您可以在轴上放置任何可能的范围,而无需更改绘图。
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()
这给出:
一般来说,对于任何情节,您都可以使用 xticks
和 yticks
,例如
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()
我有一个像这样的简单图像图:
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?我想在不缩放图像的情况下重新缩放轴。
使用 imshow
的 extent
属性,您可以在轴上放置任何可能的范围,而无需更改绘图。
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()
这给出:
一般来说,对于任何情节,您都可以使用 xticks
和 yticks
,例如
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()