2013-03-08 3 views
0

Я использую следующий пример Example для создания двух подполей полярного контура. Когда я создаю в формате pdf, есть много белого пространства, которое я хочу удалить, изменив значение figsize.Изменить figsize в matplotlib полярный контур

Я знаю, как часто менять figsize, но мне трудно увидеть, куда его поместить в этом примере кода. Любые указания или подсказки будут очень признательны.

Большое спасибо!

import numpy as np 
import matplotlib.pyplot as plt 

#-- Generate Data ----------------------------------------- 
# Using linspace so that the endpoint of 360 is included... 
azimuths = np.radians(np.linspace(0, 360, 20)) 
zeniths = np.arange(0, 70, 10) 

r, theta = np.meshgrid(zeniths, azimuths) 
values = np.random.random((azimuths.size, zeniths.size)) 

#-- Plot... ------------------------------------------------ 
fig, ax = plt.subplots(subplot_kw=dict(projection='polar')) 
ax.contourf(theta, r, values) 

plt.show() 

ответ

1

Другой способ сделать это - использовать figsize kwarg в вашем телефоне до plt.subplots.

fig, ax = plt.subplots(figsize=(6,6), subplot_kw=dict(projection='polar')).

Эти значения находятся в дюймах, между прочим.

+0

Отлично, спасибо, это сделало именно то, что я хотел! – James

1

Вы можете легко просто положить plt.figsize(x,y) в начале кода, и он будет работать. plt.figsize изменяет размер всех будущих сюжетов, а не только текущий сюжет.

Однако, я думаю, что ваша проблема не в том, что вы думаете. В сгенерированных PDF-файлах существует довольно много пробелов, если вы не измените параметры. Я обычно использую

plt.savefig('name.pdf', bbox_inches='tight', pad_inches=0) 

Это дает как можно меньше пробелов. bbox_inches = 'tight' пытается сделать ограничивающий прямоугольник как можно меньше, в то время как pad_inches устанавливает, сколько дюймов пробела должно быть заполнено. В моем случае у меня нет дополнительных дополнений, так как я добавляю дополнения в то, что я использую для этой фигуры.

+0

Спасибо, я не знал о комментариях в savefig - это помогает. Фактически использование plt.figsize = (5,5), скажем, в начале кода не влияет на мой вывод. – James

+0

Если вы делаете plt.figsize = (5,5), это не сработает; он должен быть plt.figsize (5,5) без равных. Существует функция figsize, которая устанавливает размер фигуры по умолчанию, а именованный аргумент figsize - фигуру и подзаголовки, которые устанавливают значение figsize для этой конкретной фигуры. – cge

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