gpt4 book ai didi

python - 如何将文本保存在可在 svg 文件中编辑的 python 图中?

转载 作者:行者123 更新时间:2023-12-04 16:30:06 25 4
gpt4 key购买 nike

我正在尝试将 python 图保存为 svg 文件:

import matplotlib as mpl
mpl.use('svg')
import matplotlib.pyplot as plt
import numpy as np

plt.figure()
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('Phase $\phi$')
plt.ylabel('Signal')
plt.savefig('SineSignal.svg', format = 'svg')

到目前为止工作。
但是一旦我在 Inkscape 中打开文件,我就无法再编辑文本了。似乎python将文本保存为图形而不是文本。因此,我既无法在 Inkscape 中更改字体、字体大小等,也无法在我用 latex 创建的 PDF 文件的图中搜索文本元素。

另一种选择是将绘图保存为 PGF(在这种情况下,mpl.use('svg') 必须替换为 mpl.use('pgf')):
plt.savefig('SineSignal.pgf')

这样我仍然无法编辑字体/字体大小,但至少我可以在 pdf 中搜索文本元素。

有什么建议?
在 python 中使用 TikZ 不是一种选择,因为功能非常有限,而且图看起来会有所不同。

最佳答案

找到了答案。您可以使用

new_rc_params = {'text.usetex': False,
"svg.fonttype": 'none'
}
mpl.rcParams.update(new_rc_params)

以防止 svg 后端将文本呈现为路径。
有关更详细的说明,请查看 Is there an efficient way to store 2D plots as a vector graphic in python? .

关于python - 如何将文本保存在可在 svg 文件中编辑的 python 图中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50345077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com