gpt4 book ai didi

python - 范围在 matplotlib 中的真正作用是什么?

转载 作者:行者123 更新时间:2023-12-01 09:13:20 25 4
gpt4 key购买 nike

最近我在导入图像和使用来自 numpy 的随机数据后一直在摆弄 matplotlib。我将图表的范围更改为双倍最大范围(即 20x20 矩阵为 40x40),但它们看起来仍然相同。我找不到任何关于这种情况下真正作用的文档。它是否会复制我的数据、对其进行插值或使用其他函数?

最佳答案

我想您在此处询问 imshowextent 关键字参数。

这用于定义坐标区中图像的单位。默认情况下,即不设置范围时,单位恰好是数组的像素。例如。如果您有 10x10 像素的图像,则范围为 (-0.5, 9.5, 9.5, -0.5)

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(42)

data = np.random.rand(10,10)

fig, ax = plt.subplots()

im = ax.imshow(data)
print(im.get_extent()) # prints (-0.5, 9.5, 9.5, -0.5)

enter image description here

每个像素都是一个单位大,整数是像素中心。

但是,您可能想对图像使用不同的单位。您可能对数据进行了校准,或者数据是使用不同单位的计算结果。在这种情况下,可以设置extent来确定图像将驻留在轴单位的2D空间中的位置。例如。如果您希望图像在 x 方向上从 -300 扩展到 300,在 y 方向上从 50 扩展到 450,您可以使用 extent=[-300,300,450,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()

enter image description here

由于默认的等长宽比 (aspect="equal"),不仅轴坐标现在变为从 -300 到 300 和 50 到 450 的范围,而且图像的形状也发生了变化现在变成非二次方,即具有 (450-50)/(300+300)=0.666 的方面。

有一个tutorial on origin and extent可用,它也解释了这一点,并且还阐明了如何确定和操作相对于图像数据的轴方向。

关于python - 范围在 matplotlib 中的真正作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51462728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com