如何将matplotlib图形导出为带有可编辑文本字段的矢量图形?

时间:2019-01-09 00:07:42

标签: python matplotlib

我试图导出多个图以在Adobe Illustrator中进行编辑,并且试图将标题,轴标签和条形图标签设置为单独的文本字段。例如,如果我在Illustrator(或您选择的编辑器)中单击标题,则整个标题都是其自己的字段。

这是我不带文本字段的矢量图形导出方式:

plt.bar(x_data, y_data)
plt.title('Fancy Title')
plt.xlabel('Informative X label')
plt.ylabel('Felicitous Y label')
plt.draw()
fig.savefig(savepath, bbox_inches='tight', format='svg')
plt.show()

这会输出漂亮的矢量图形,但是我不能将文本编辑为字段。我可以通过文本转换软件来运行它,但是这样可以稍微移动文本,使所有内容消失,并将字体检测留给软件。

2 个答案:

答案 0 :(得分:3)

尝试以下几行:

import matplotlib as mpl
mpl.rcParams['pdf.fonttype'] = 42
mpl.rcParams['ps.fonttype'] = 42

根据我的经验,默认字体类型是不可编辑的,但是这是一种。

答案 1 :(得分:2)

您可以将svg字体类型设置为none:

Shape shape = new Circle

以下内容也适用:

  1. 将图形另存为pdf,import matplotlib.pyplot as plt plt.rcParams['svg.fonttype'] = 'none'
  2. Inkscape中打开pdf,
    即文件/导入...,然后选择enter image description here选项。
  3. 现在您可以在Inkscape中编辑文本了。
  4. (可选)从inkscape中导出图形(例如,作为svg文件),以便以后将其导入任何其他程序中。