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

标签 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()

生成的图像为 png:
enter image description here

并作为 svg(后来转换为 png,所以我可以在这里上传它):
enter image description here

最佳答案

值得一提的是,除了@FelipeLema 提到的特定于 SVG 的问题之外,还有一点您应该注意。
interpolation='none'之间有区别和 interpolation='nearest' .它主要适用于矢量格式,您将使用查看器生成显示在屏幕上的光栅化版本(例如 PDF、SVG)。

这里的 matplotlib 示例中有一个很好的视觉摘要:http://matplotlib.org/examples/images_contours_and_fields/interpolation_none_vs_nearest.html在这种情况下,我们将主要讨论示例的“小图像放大”部分。
interpolation='none'告诉查看器不需要特定的插值类型。对于 matplotlib 生成的光栅图像,它将是最近的插值。对于某些 PDF 查看器,这是最近的,而对于其他 PDF 查看器,它是双线性或其他平滑插值器。

然而,interpolation='nearest'指定您特别想要最近邻插值。

我不记得 SVG 查看器在这方面的行为是否与 PDF 查看器类似,但即使@FelipeLema 提到的错误已修复,您可能不会在所有带有 interpolation='none' 的 SVG 查看器中看到最近邻插值.

关于matplotlib - 如何消除matplotlib(pyplot)中的平滑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35276666/

相关文章:

python - 如何为子图绘制动画图例?

java - 如何以图形方式重绘字符串数组而不与文本重叠?

java - 纹理未正确拉伸(stretch)。为什么会这样?

graphics - 渲染时如何按正确顺序绘制形状?

dataframe - 重命名的区别!并在 Julia 中使用新的 DataFrame 重命名?

python - 如何填充 matplotlib 网格?

python - 在 matplotlib 中映射六边形网格

arrays - 空数组的 Julia 数组

julia - 从特定方法调用更通用的方法

python - 如何使用 imshow 使用 Matplotlib 绘制具有非线性 y 轴的图像?