首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >imshow()的图形太小

imshow()的图形太小
EN

Stack Overflow用户
提问于 2012-05-11 03:31:36
回答 4查看 231.9K关注 0票数 133

我正在尝试使用imshow()来可视化一个numpy数组,因为它类似于Matlab中的imagesc()。

代码语言:javascript
复制
imshow(random.rand(8, 90), interpolation='nearest')

得到的图形在灰色窗口的中心非常小,而大部分空间是空闲的。如何设置参数以使图形更大?我尝试过figsize=(xx,xx),但它不是我想要的。谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-11 14:05:24

如果你不给imshow一个aspect参数,它将在你的matplotlibrc中使用image.aspect的值。新matplotlibrc中此值的默认值为equal。因此,imshow将以相等的纵横比绘制您的数组。

如果不需要等宽比,可以将aspect设置为auto

代码语言:javascript
复制
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')

它给出了下面的图

如果你想要相同的宽高比,你必须根据宽高比调整你的figsize

代码语言:javascript
复制
fig, ax = subplots(figsize=(18, 2))
ax.imshow(random.rand(8, 90), interpolation='nearest')
tight_layout()

这为您提供了:

票数 182
EN

Stack Overflow用户

发布于 2012-05-11 04:17:24

这很奇怪,它对我来说绝对是有效的:

代码语言:javascript
复制
from matplotlib import pyplot as plt

plt.figure(figsize = (20,2))
plt.imshow(random.rand(8, 90), interpolation='nearest')

我正在使用"MacOSX“后端,顺便说一下。

票数 61
EN

Stack Overflow用户

发布于 2020-05-03 18:31:11

更新2020

应@baxxx的要求,这里是一个更新,因为random.rand同时被弃用。

这适用于matplotlip 3.2.1:

代码语言:javascript
复制
from matplotlib import pyplot as plt
import random
import numpy as np

random = np.random.random ([8,90])

plt.figure(figsize = (20,2))
plt.imshow(random, interpolation='nearest')

该图显示:

要更改随机数,可以尝试使用均值( np.random.normal(0,1,(8,90)) )(此处均值= 0,标准差= 1)。

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

https://stackoverflow.com/questions/10540929

复制
相关文章

相似问题

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