以下代码部分取自matplotlib文档中的等高线演示。我使用contourf替代simple contour来展示等高线图,matplotlib图形窗口内的图表显示得很好。但当保存图片时,PNG格��看起来完美无缺,然而由于png不是矢量格式,所以我没有任何层级信息。当保存为PDF或SVG格式时,会有轻微的细边框环绕在层级周围。起初我以为这些边框是因为每个层级都被描边了。但是,当我用inkscape打开SVG文件去除描边时,发现实际上层级的大小已经被保存得有点太小或者有点太大了...虽然在放大时几乎看不到它们,但缩小后它们就很明显了。我想这可能是因为层级的值被保存时精度比较低造成的吧 !?是否有一些命令可以消除这些边框呢? 我知道在大多数情况下这些边框并不会产生影响,但不幸的是,在我的应用场景中,它们并不仅仅是看起来不美观,而且真的影响了图像质量...
import matplotlib
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
matplotlib.rcParams['xtick.direction'] = 'out'
matplotlib.rcParams['ytick.direction'] = 'out'
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10.0 * (Z2 - Z1)
plt.ion()
plt.figure()
CS = plt.contourf(X, Y, Z, colors=[[0,0,0.5],[0,0,0.2]])
plt.title('Saved as PNG')
plt.savefig('image1.png')
plt.title('Saved as SVG')
plt.savefig('image1.svg')