Я создаю график качества публикации, который должен быть встроен в латекс, и я хотел бы быть очень точным с точки зрения размеров и шрифтов (так что шрифты имеют одинаковый размер в статье, как в сюжете). Чтобы предотвратить заговор от масштабирования в латексе, я хотел бы иметь его точный размер, но я не могу. Вот мой код:
import matplotlib.pyplot as plt
from matplotlib import rc, rcParams
from numpy import sin
rc('text', usetex=True)
rc('font', family='serif', serif='Computer Modern Roman', size=8)
rc('legend', fontsize=10)
width_in = 5
fig = plt.figure(1, figsize=(width_in, 2))
ax = fig.add_subplot(111)
ax.plot(range(0,100), sin(range(0,100)))
fig.tight_layout()
fig.savefig('test.eps', bbox_inches='tight', pad_inches=0)
plt.close()
Проблема связана с bbox_inches = 'tight' и pad_inches = 0. Добавление этих опций делает мой участок размером 4,76 дюйма вместо объявленных 5 дюймов. Но я хочу, чтобы они сэкономили место. Итак, как его решить?
Изменить: Ну, ответы предлагают удалить bbox_inches='tight'
и pad_inches=0
и использовать только tight_layout()
. Тогда изображения имеют нужный размер, однако у него все еще есть белые прокладки вокруг. Я могу удалить его с помощью fig.tight_layout(pad=0)
, но затем название фигуры переместилось внутри поля, что выглядит уродливым. С другой стороны, я могу использовать tight_layout(rect=[...])
и получить желаемый результат, но это ручная работа, чтобы получить правильные цифры - мне это не нравится. Таким образом, в настоящее время я не вижу легкого и общего решения моей проблемы.