Matplolib исправление точный размер файла PDF - PullRequest
1 голос
/ 16 июня 2019

У меня есть код, который создает гистограммы из файла.Я сохраняю каждый график в файле PDF с фиксированным размером, который я установил с помощью rcParams (формат A4 с альбомной ориентацией):

 fig_size = plt.rcParams["figure.figsize"]
 fig_size[0] = 11  # Landscape A4 format inches
 fig_size[1] = 8 
 plt.rcParams["figure.figsize"] = fig_size

Это код для сохранения графика в формате PDF.

plt.savefig(filename, bbox_inches="tight", pad_inches=0.5, transparent=True, dpi=300)

Я пробовал dpi = 100, dpi = 600 без изменений.

У меня около 40 файлов PDF.Тем не менее, размер этих PDF слегка варьируется от 10:35 х 8:36 до почти 10: 47х 8:47 дюймов.Я имею в виду размер самой страницы, а не дисковое пространство, которое, как я понимаю, зависит от количества пикселей, используемых для построения файла.Мои файлы находятся в диапазоне 13-17 кб ... и это нормально.

Что не в порядке, так это то, что я не могу объединить файлы PDF в отчете, так как размеры страниц PDF не совпадают.

Как я могу настроить размер страницы PDF таким же образом?

ниже воспроизводимого сценария:

"For StackOverFlow"


import matplotlib.pyplot as plt

SMALL_SIZE = 9
MEDIUM_SIZE = 14
BIGGER_SIZE = 18 #28

plt.rc('font', size=SMALL_SIZE)          # controls default text sizes
plt.rc('axes', titlesize=SMALL_SIZE)     # fontsize of the axes title
plt.rc('axes', labelsize=MEDIUM_SIZE)    # fontsize of the x and y labels
plt.rc('xtick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('ytick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('legend', fontsize=SMALL_SIZE)    # legend fontsize
plt.rc('axes', titlesize=BIGGER_SIZE)

#x1 = [14, 10, 61, 15, 22]
#y1 = [-10, -2, 1, 8, 12]

#x1 = [0, 1.4, 1.47, 2.3, 2.6]
#y1 = [-1.51, -0.03, 0.04, 0.92, 1.23]

x1=[0.795466667, 1.02, 1.12, 1.155, 1.22, 1.459, 1.47, 1.81]
y1=[-1.50, -0.77, -0.45, -0.34, -0.13, 0.64, 0.68, 1.77]

barWidth = 1.2

r1 = [1.5* i for i in range(0, len(y1))]

fig_size = plt.rcParams["figure.figsize"]
fig_size[0] = 11 #fig_size[0] = 11.69
fig_size[1] = 8 #fig_size[1] = 8.27
plt.rcParams["figure.figsize"] = fig_size

plt.margins(0.005, 0.005)

plt.bar(r1,y1, align='center', color='#9E0032', width=barWidth)

plt.xlabel('Z Code', fontweight='bold')

plt.ylabel('\n Z Value', fontweight='bold') 

# Create names on the x-axis
plt.xticks(r1, x1, fontweight='bold')

plt.yticks(fontweight='bold')

title = "Specimen1"

plt.title(title, fontweight='bold')

filename = title + ".pdf"


#plt.savefig(filename, bbox_inches="tight", pad_inches=0.5, transparent=True, dpi=300)
plt.savefig(filename, pad_inches=0.5, transparent=True, dpi=300)
plt.show()

Спасибо за помощь

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