Подтвердить что ты не робот

Выходной график matplotlib для SVG с текстом в виде текста, а не кривых

Когда я использую matplotlib.pyplot.savefig("test.svg", format="svg") для экспорта фигуры в качестве SVG, тогда полученный SVG файл огромен.

Это связано с тем, что в моей фигуре много текстовых аннотаций, и каждый текст заканчивается как пути в SVG.

Я хочу, чтобы мой текст заканчивался как текстовые строки в SVG, а не пути. Слишком сложно интерпретировать вывод, если текстовые строки экспортируются таким образом.

Есть ли способ заставить matplotlib выводить текст как текст, а не кривые?

В настоящее время я вижу эти фрагменты кода в файле SVG:

<path d=" M9.8125 72.9062 L55.9062 72.9062 L55.9062 64.5938 L19.6719
64.5938 L19.6719 43.0156 L54.3906 43.0156 L54.3906 34.7188 L19.6719
34.7188 L19.6719 8.29688 L56.7812 8.29688 L56.7812 0 L9.8125 0 z "
id="DejaVuSans-45" />
4b9b3361

Ответ 1

Matplotlibs Отображение текста SVG можно настроить либо в matplotlibrc, либо в коде. Из http://matplotlib.org/users/customizing.html:

#svg.fonttype : 'path'         # How to handle SVG fonts:
#    'none': Assume fonts are installed on the machine where the SVG will be viewed.
#    'path': Embed characters as paths -- supported by most SVG renderers
#    'svgfont': Embed characters as SVG fonts -- supported only by Chrome,
#               Opera and Safari

Это означает следующий код для ни встраивания шрифта, ни для текста в качестве пути:

import matplotlib.pyplot as plt
plt.rcParams['svg.fonttype'] = 'none'