Слияние рисунка matplotib и существующего файла svg с помощью svgutils: ошибка по коэффициенту масштабирования? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь объединить фигуру 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 см.

Почему? Это ошибка?

Я уточнил, что этот странный коэффициент масштабирования зависит от начального размера фигуры и может быть меньше единицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...