【发布时间】:2015-06-14 11:05:15
【问题描述】:
我在 python 和 MATLAB 中绘制相同的值(The data 完全相同)。
只是在做
import scipy.io as sio
zzz = sio.loadmat(pathToData)
plot(zzz['zzz'][:,0]) #python
在matlab中
plot(zzz) %matlab
我正在尝试让 matplotlib 创建一个看起来与 MATLAB 图形相同的图像,例如 this example。
- 以下图像是使用屏幕截图创建的,以避免对图像进行任何后期处理。我确保两个数字的大小相同。然后我把一个放在另一个旁边,同时为它们创建了一个屏幕截图
我还将这些行并排放置:
有点难看,但 MATLAB 图像噪声更大,看起来 python 图像是在这样的移动平均值之后(尤其是在绘图开始时)
您有关于如何使python图形看起来完全像 MATLAB 那样的任何建议吗?
(如果有人对一些实验感兴趣,我上传了the data)
编辑
我尝试做antialiased = False,结果稍微好一点,但是我尝试做的线宽更大(original screencapture)
【问题讨论】:
-
能否包含完整代码(包括将mat文件加载到python中)?我相信很多有经验的 python 程序员会跳过这个问题,因为他们不知道如何处理 matlab 特定的文件格式。
-
假设,你已经说过,
data(== zzz)的片段是相同的,所以数据处理-phase 是起点。但是,如果zzz输入对于 MATLAB / python 处理是不同的,而是检查数据生成-阶段是否有任何差异。您还可以绘制一对 zzz 数据点之间的差异(一个来自 MATLAB,另一个来自 python 数据源)以获得更重要的细节,比仅观察放大的像素化 GUI 更具可读性表示) -
会不会是python的线比较粗?
-
呃……这两个数字怎么叠加?!是否涉及任何缩放?你会比较保存到磁盘的屏幕截图或数字吗?
-
半开玩笑:何必呢?抗锯齿的图片通常看起来更好,那么你为什么要制作一个像 Matlab 一样丑的漂亮的 Matplotlib 图呢?一个更有趣的问题是如何让 Matlab 默认使用抗锯齿 :)
标签: python matlab matplotlib