2016-09-08 6 views
0

Я хочу отобразить несколько фигур разных размеров, следя за тем, чтобы текст всегда был того же размера, когда цифры печатаются. Как я могу это достичь?matplotlib - изменить figsize, но сохранить постоянный шрифт

В качестве примера. Скажем, у меня есть две цифры:

import matplotlib.pylab as plt 
import matplotlib as mpl 

mpl.rc('font', size=10) 

fig1 = plt.figure(figsize = (3,1)) 
plt.title('This is fig1') 
plt.plot(range(0,10),range(0,10)) 
plt.show() 


mpl.rc('font', size=?) 

fig2 = plt.figure(figsize = (20,10)) 
plt.title('This is fig2') 
plt.plot(range(0,10),range(0,10)) 
plt.show() 

Как я могу установить FontSize таким образом, что при печати название и ось ticklabels в fig1 будет иметь тот же размер, как и те, в fig2?

+0

Я не уверен, что вы подразумеваете под «при печати». Вы имеете в виду «напечатаны на бумаге», «отображены на экране» или «сохранены в файл». Если вы используете одинаковый размер шрифта, размер шрифта будет одинаковым. Изменение размера фигуры изменяет относительный размер шрифта --- по сравнению с размером фигуры, но не сам размер шрифта. – farenorth

ответ

1

В этом случае размер шрифта будет таким же (например, 10 баллов).

Однако в Jupyter ноутбуков цифры могут отображаться в различном размере, если они слишком широки, смотрите ниже:

Jupyter Notebook example

Обратите внимание, что размер шрифта в точках имеет линейную шкалу, так что если вы хотел бы, чтобы размер букв был в два раза больше, вам нужно было бы ввести ровно вдвое больше размера в точках (например, 20pt). Таким образом, если вы ожидаете напечатать вторую цифру с 50% первоначального размера (длина и ширина, а не область), шрифты будут одинакового размера.

Но если единственная цель этого скрипта состоит в том, чтобы сделать рисунки для печати, вам лучше всего установить размер по желанию (на бумаге или на экране), а затем сделать размер шрифта равным. Затем вы можете вставить их в документ с точным размером или соотношением, а шрифты будут иметь одинаковый размер.


Как отметил tcaswell, bbox_inches='tight' эффективно изменяет размер сохраняемого рисунка, так что размер отличается от того, что вы установили в качестве figsize. Поскольку это может обрезать больше пробелов от некоторых цифр, чем другие, относительные размеры объектов и шрифтов могут оказаться разными для данного соотношения сторон.

+1

и напишите 'bbox_inches = 'tight'', который изменит размер/обрезает вашу фигуру, если вы исправите размер фигуры, например, латекс, эффективно измените размер шрифтов. – tacaswell

+0

Ах да, хорошая точка! Добавьте это в ответ. Интересно, есть ли какие-либо другие оговорки. – BrechtDeMan

+0

Спасибо! Я был просто сбит с толку, так как цифры отображаются на jupyter notebook изменения шрифтов в 2 случаях. Однако, после сохранения цифр, шрифты одинаковы. – Laura

 Смежные вопросы

  • Нет связанных вопросов^_^