Python 在matplotlib中,区段真正起什么作用?
最近,我在导入图像和numpy中的随机数据后,一直在摆弄matplotlib。我将图形的范围更改为double max range(即20x20矩阵的范围为40x40),但它们看起来仍然一样。我找不到任何关于这种情况下的真实程度的文件。它是否复制了我的数据,对其进行插值,或者使用其他函数?我想您是在询问Python 在matplotlib中,区段真正起什么作用?,python,matplotlib,Python,Matplotlib,最近,我在导入图像和numpy中的随机数据后,一直在摆弄matplotlib。我将图形的范围更改为double max range(即20x20矩阵的范围为40x40),但它们看起来仍然一样。我找不到任何关于这种情况下的真实程度的文件。它是否复制了我的数据,对其进行插值,或者使用其他函数?我想您是在询问imshow的范围关键字参数 这用于定义轴中图像的单位。默认情况下,即不设置范围,单位正好是阵列的像素。例如,如果您有一个10x10像素的图像,则范围为(-0.5,9.5,9.5,-0.5) 每
imshow
的范围
关键字参数
这用于定义轴中图像的单位。默认情况下,即不设置范围
,单位正好是阵列的像素。例如,如果您有一个10x10像素的图像,则范围为(-0.5,9.5,9.5,-0.5)
每个像素是一个大单位,整数是像素中心
但是,您可能希望对图像使用不同的单位。可能对数据进行了校准,或者数据是使用不同单位的计算结果。在这种情况下,可以设置范围
,以确定图像在轴单元的2D空间中的位置。例如,如果您希望图像在x方向的范围为-300到300,在y方向的范围为50到450,则可以使用范围=[-300450,50]
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)
data = np.random.rand(10,10)
fig, ax2 = plt.subplots()
ax2.imshow(data, extent=[-300,300,450,50])
plt.show()
由于默认的相等纵横比(aspect=“equal”
),不仅轴坐标现在在-300到300和50到450之间变化,而且图像的形状现在也变成了非二次形状,即具有(450-50)/(300+300)=0.666的纵横比
有一个可用的示例,它也解释了这一点,并且还澄清了如何确定和操纵轴相对于图像数据的方向
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)
data = np.random.rand(10,10)
fig, ax2 = plt.subplots()
ax2.imshow(data, extent=[-300,300,450,50])
plt.show()