Выходной график 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" />
Ответы
Ответ 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'