我正在使用 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:
并作为 svg(后来转换为 png,所以我可以在这里上传它):
最佳答案
值得一提的是,除了@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/