首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在matplotlib中,实际的范围是什么?

在matplotlib中,实际的范围是什么?
EN

Stack Overflow用户
提问于 2018-07-22 06:53:37
回答 1查看 1.7K关注 0票数 1

最近,我在导入图像和从numpy随机数据之后一直在处理matplotlib。我将图的范围改为双最大范围(即20x20矩阵的范围为40x40 ),但它们看起来还是一样的。在这种情况下,我找不到任何关于真正的程度的文档。它是复制我的数据,插值它,还是其他函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-22 09:58:32

我想您在这里询问的是imshowextent关键字参数。

这用于定义轴中图像的单位。默认情况下,即不设置extent,单元就是数组的像素。如果你有一个10x10像素的图像,范围是(-0.5, 9.5, 9.5, -0.5)

代码语言:javascript
复制
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)

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

然而,它可能会发生,您想要使用不同的单位为您的形象。可能您对数据进行了校准,或者数据是使用不同单元的计算结果。在这种情况下,可以将extent设置为确定图像将驻留在轴单元的2D空间中的位置。例如,如果你希望你的图像在x方向从-300到300,在y方向从50到450,你可以使用extent=[-300,300,450,50]

代码语言:javascript
复制
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的一面。

有一个可用的extent,这也解释了这一点,此外,还阐明了如何确定和操纵图像数据的轴的方向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51462728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档