我通常将我的情节保存在python中作为PNG。这很好,但在后来重新缩放时有明显的缺点。因此,我想将我的情节,数字等保存为矢量图形,然后将它们导入Windows应用程序,如word或powerpoint。
我现在面临几个问题。
以下是一些试图想象我的问题的图片。
答案 0 :(得分:0)
您在Windows或Mac上使用的是哪个版本的Office?
更一般地说:将EPS与Office结合使用是一项特殊的业务。办公室不以任何标准方式处理EPS。如果您将始终打印到PostScript打印机或使用其他一些基于PostScript的输出方法(例如打印到PS然后提取到PDF),如果您进行注册表更改以告知PPT,那么EPS可以很好地工作(不要...知道Word)行为正常。问我和我是否可以挖掘细节。否则,它会尝试解释EPS本身的PS内容,可能会也可能不会很好地完成它。
你可以转换为EMF(假设Windows在这里)?如果没有,你能控制图像的分辨率吗?转换为更高分辨率的PNG可能会获得最佳效果。
答案 1 :(得分:0)
Windows现在似乎为将大多数PDF作为矢量文件嵌入提供了很好的支持,并且在导出为PDF时会保留矢量特征。这是基于我使用Office 2011 for Mac的经验,但应扩展到MS Office 2007 for Windows。我将matplotlib图保存为PDF,将其导入Word文档,并将其保存为矢量输出。
一个问题:如果您在文本框中嵌入PDF,Word会在将其保存为PDF时对其进行栅格化。
要获得更高级的矢量支持,请尝试OpenOffice-我相信它支持直接SVG导入,但有一些错误。
答案 2 :(得分:0)
This is a duplicate answer to this question.
import matplotlib.pyplot as plt
import subprocess
import os
inkscapePath = r"path\to\inkscape.exe"
savePath= r"path\to\images\folder"
def exportEmf(savePath, plotName, fig=None, keepSVG=False):
"""Save a figure as an emf file
Parameters
----------
savePath : str, the path to the directory you want the image saved in
plotName : str, the name of the image
fig : matplotlib figure, (optional, default uses gca)
keepSVG : bool, whether to keep the interim svg file
"""
figFolder = savePath + r"\{}.{}"
svgFile = figFolder.format(plotName,"svg")
emfFile = figFolder.format(plotName,"emf")
if fig:
use=fig
else:
use=plt
use.savefig(svgFile)
subprocess.run([inkscapePath, svgFile, '-M', emfFile])
if not keepSVG:
os.system('del "{}"'.format(svgFile))
import numpy as np
tt = np.linspace(0, 2*3.14159)
plt.plot(tt, np.sin(tt))
exportEmf(r"C:\Users\userName", 'FileName')