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

Python 如何将matplotlib图形导出为带有可编辑文本字段的矢量图形?,python,matplotlib,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') p

我正在尝试导出多个绘图以在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()

这输出了一个很好的矢量图形,但我不能将文本编辑为字段。我可以通过一个文本转换软件运行它,但这会稍微移动文本,使所有内容都显示为关闭状态,并让软件进行字体检测。

您可以将svg fonttype设置为无:

import matplotlib.pyplot as plt
plt.rcParams['svg.fonttype'] = 'none'
以下方法也有效:

  • 将图另存为pdf,
    plt.savefig(“filename.pdf”)
  • 在中打开pdf,
    i、 文件/导入。。。然后选择选项
  • 现在,您可以在Inkscape中编辑文本
  • (可选)从inkscape导出图形(例如作为svg文件),以便以后将其导入任何其他程序
  • 试试下面这些句子:

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

    根据我的经验,默认fonttype是不可编辑的,但这个是。

    为什么?你确定答案是42吗?