2014-11-25 3 views
2

У меня есть этот сценарий для создания 7-й серии на той же странице. Я хотел бы настроить ориентацию страницы на «Портрет». Как вы можете видеть ниже, я попробовал:Matplotlib | Измените ориентацию на портрет

f.savefig(sta+'.pdf', orientation='portrait', format='pdf') 

Но ничего не происходит!

Есть ли у вас какие-либо предложения?

f, (ax1, ax2, ax3, ax4, ax5, ax6, ax7) = plt.subplots(7, sharex=True, sharey=False) 
    plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.5) 
    ax1.plot(xtr[:num.size(xt),i], color='black') 
    ax2.plot(ytr[:num.size(yt),i], color='black') 
    ax3.plot(ztr[:num.size(zt),i], color='black') 
    ax4.plot(obs_dataV[:,i], color='g') 
    ax5.plot(obs_dataH[:,i], color='r') 
    ax6.plot(obs_dataP, color='g') 
    ax7.plot(obs_dataS, color='r') 
    ax1.set_title(sta+' Raw data', loc='left', fontsize='10') 
    ax4.set_title('Vertical and Horizontal traces', loc='left', fontsize='10') 
    ax6.set_title('Characteristic functions', loc='left', fontsize='10') 
    ax1.legend('X',loc='center right', fontsize='12') 
    ax2.legend('Y',loc='upper right', fontsize='12') 
    ax3.legend('Z',loc='upper right', fontsize='12') 
    ax4.legend('P',loc='upper right', fontsize='12') 
    ax5.legend('S',loc='upper right', fontsize='12') 
    ax6.legend('P',loc='upper right', fontsize='12') 
    ax7.legend('S',loc='upper right', fontsize='12') 
    f.savefig(sta+'.pdf', orientation='portrait', format='pdf') 
    plt.show() 

Заранее спасибо :-)

+0

'ориентация = 'портрет'' не h в этом случае имеет большое значение. Размер страницы в формате pdf определяется как размер рисунка. (Для бэкэнда postcript это на самом деле немного отличается, что и подразумевается для «ориентации» kwarg.) Хотите ли вы изменить размер фигуры? –

+0

Вы пытаетесь уложить графики по вертикали на рисунке? Или задайте соотношение сторон графиков таким образом, чтобы они составляли 7 узких участков, вырезанных по горизонтали? – mauve

+0

Спасибо, Джо! Я не знал, что tis kwargs не поддерживается на всех серверах. Я изменил формат ps и изменил размер фигуры в plt.subplots() – CatarinaCM

ответ

3

Я думаю, что Вы желаете изменить размер фигуры, а не что-либо, имеющее отношение макет страницы. orientation kwarg до savefig действительно относится только к PS и EPS-серверам. Для PDF размер страницы определяется как равный размеру фигуры, поэтому он не имеет никакого эффекта.

Как быстро пример того, что текущие результаты могут выглядеть следующим образом:

import matplotlib.pyplot as plt 
fig, ax = plt.subplots(nrows=7, sharex=True, sharey=False) 
fig.subplots_adjust(hspace=0.5) 
plt.show() 

enter image description here

Чтобы изменить размер рисунка, используйте figsize kwarg:

import matplotlib.pyplot as plt 
fig, ax = plt.subplots(nrows=7, figsize=(8, 11), sharex=True, sharey=False) 
fig.subplots_adjust(hspace=0.5) 
plt.show() 

enter image description here

+2

or: fig, axis_array = plt.subplots (7,1, figsize = (pic_width/7, pic_width), subplot_kw = {'aspect': (что бы вы ни захотели)}) – mauve

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