Я пытаюсь объединить фигуру matplotlib с существующим svg-файлом, используя библиотеку svgutils, как рекомендовано здесь .
Сначала я пытаюсь узнать, как использовать svgutils
функции, используя следующий минимальный код:
import svgutils.compose as sc
import numpy as np
import matplotlib.pyplot as plt
fig_width = 10 #cm
fig_height = 5 #cm
fig = plt.figure(figsize = (fig_width/0.39, fig_height/0.39))
x = np.linspace(0, 1, 100)
plt.plot(x,x)
plt.tight_layout()
###########
# Saving with matplotlib directly
plt.savefig('test.svg')
# Using svgutils
sc.Figure(str(fig_width)+ 'cm', str(fig_height) + 'cm',
sc.Panel(sc.MplFigure(fig)).scale(1),
).save("test_1.svg")
sc.Figure(str(fig_width)+ 'cm', str(fig_height) + 'cm',
sc.Panel(sc.SVG("test.svg")).scale(1),
).save("test_2.svg")
test_1.svg и test_2.svg не совпадают с test.svg, почему?
Точнее:
- в test.svg: размеры объекта и страницы одинаковы и равны 10-5 см.
- в n test_1.svg и test_2.svg: размер страницы 10-5 см, но объект Размер, исходя из matplotlib или test.svg составляет 62-32 см.
Почему? Это ошибка?
Я уточнил, что этот странный коэффициент масштабирования зависит от начального размера фигуры и может быть меньше единицы.