首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Matplot图像被压缩Python

Matplot图像被压缩Python
EN

Stack Overflow用户
提问于 2019-06-02 21:39:18
回答 1查看 337关注 0票数 1

我正在尝试将matlab代码转换为python。下面是我编写的python代码

代码语言:javascript
复制
import numpy as np
import numpy.matlib as nm
import matplotlib.pyplot as plt
N = 1000;     # time points
M =   20;     # channels
nTrials = 50; # number of trials
t = np.linspace(0,6*np.pi,N);
img=(nm.repmat(np.sin(t),M,1))
plt.imshow(img);
plt.colorbar()
plt.show()

输出如下所示

MATLAB代码

代码语言:javascript
复制
N = 1000;     % time points
M =   20;     % channels
nTrials = 50; % number of trials

% time vector (radian units)
t = linspace(0,6*pi,N);
img=repmat( sin(t),M,1 )
imagesc(img)

matlab中的输出如下所示

或者,我尝试对简单的样本数据MATLAB做同样的事情。

代码语言:javascript
复制
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
imagesc(C)
colorbar

PYTHON

代码语言:javascript
复制
C =np.array([0, 2 ,4 ,6, 8, 10, 12, 14, 16, 18, 20, 22])
C=np.reshape(C,(3,4))
plt.imshow(C);
plt.colorbar()
plt.show()

两者中的图像输出是相同的

我不明白为什么在sin wave中图像被压缩

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-03 01:07:40

Matlab自动缩放y轴以与x匹配。这就是为什么即使x范围比y范围大50倍,您也能看到接近平方的图像。

要在matplotlib上实现类似的效果,请尝试将y范围设置为类似于x,例如设置M=800。

或者,如果您不想更改M,您仍然可以使用matplotlib缩放y范围:

代码语言:javascript
复制
plt.imshow(img)
plt.axis('tight')
plt.colorbar()
plt.show()

请注意,在这种情况下,y轴的范围保持不变。

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

https://stackoverflow.com/questions/56415562

复制
相关文章

相似问题

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