如何消除matplotlib(pyplot)中的平滑?

时间:2016-02-08 18:28:04

标签: matplotlib graphics julia

我正在使用PyPlot的Julia实现做一些色彩图。我希望这个数字没有任何插值或平滑,我希望它被保存为svg,以便之后可以被其他人操纵。在Jupyter笔记本中,它显示为我希望它出现,如果我将其保存为png,它将按我想要的方式保存。但是如果我把它保存为svg,色彩映射会变得平滑,这对我的数据来说显然是错误的。 代码是:

figure(figsize=(7.0, 5.5))
PyPlot.xlim(1,64)
PyPlot.ylim(1,64)
otraimagen=imshow(EjemploModificado, cmap="bwr", interpolation="none", origin="lower", vmin=-limites, vmax=limites, extent=[1,64,1,64])
use_gridspace='True')
use_gridspec="True",fraction=0.045 )
tick_params(axis="both", labelsize=14)   
xlabel("electrode number", fontsize=14)
ylabel("electrode number", fontsize=14)
savefig("CSD-Neg-Pos-$t.png", dpi=90) 
PyPlot.close_queued_figs()

产生的图像如下: enter image description here

和svg(之后转换为png所以我可以在这里uplotad): enter image description here

1 个答案:

答案 0 :(得分:2)

除了@FelipeLema提到的特定于SVG的问题之外,还有其他一点,你应该知道它的价值。

interpolation='none'interpolation='nearest'之间存在差异。它主要适用于矢量格式,您可以使用查看器生成在屏幕上显示的光栅化版本(例如PDF,SVG)。

这里的matplotlib示例中有一个很好的视觉摘要:http://matplotlib.org/examples/images_contours_and_fields/interpolation_none_vs_nearest.html在这种情况下,我们主要讨论的是#34;小图像被炸毁"部分示例。

interpolation='none'告诉观众,不需要特定的插值类型。对于matplotlib生成的光栅图像,它将是最接近的插值。对于某些PDF查看器,这是最接近的,对于其他人来说,它是双线性或其他平滑插值器。

但是,interpolation='nearest'指定您特别需要最近邻插值。

我不记得SVG观众是否在这方面与PDF观众的行为类似,但即使有@FelipeLema提到的错误,你也可能看不到所有SVG观众中的最近邻插值与interpolation='none'