2015-08-18 20 views
6

I trama un gran numero di immagini con Matplotlib per fare video con esso, ma quando provo a fare il video ho visto la forma delle immagini non è la stessa in tempo .. . Induce alcuni errori. Esiste un comando per imporre la forma dell'output quando utilizzo Imsave?Python Matplotlib - Imporre dimensioni forma con Imsave

È possibile vedere una parte del mio codice:

plt.close() 
fig, axes = plt.subplots(nrows=2, ncols=3) 

###Figures composante X 
plt.tight_layout(pad=0.05, w_pad=0.001, h_pad=2.0) 
ax1 = plt.subplot(231) # creates first axis 
ax1.set_xticks([0,2000,500,1000,1500]) 
ax1.set_yticks([0,2000,500,1000,1500]) 
ax1.tick_params(labelsize=8) 
i1 = ax1.imshow(U,cmap='hot',extent=(X.min(),2000,Y.min(),2000), vmin=U.min(), vmax=U.max()) 
cb1=plt.colorbar(i1,ax=ax1,ticks=[U.min(),(U.min()+U.max())/2., U.max()],fraction=0.046, pad=0.04,format='%.2f') 
cb1.ax.tick_params(labelsize=8) 

ax1.set_title("$ \mathrm{Ux_{mes} \/ (pix)}$", y=1.05, fontsize=12) 
ax2 = plt.subplot(232) # creates second axis 
ax2.set_xticks([0,2000,500,1000,1500]) 
ax2.set_yticks([0,2000,500,1000,1500]) 
i2=ax2.imshow(UU,cmap='hot',extent=(X.min(),2000,Y.min(),2000), vmin=UU.min(), vmax=UU.max()) 
ax2.set_title("$\mathrm{Ux_{cal} \/ (pix)}$", y=1.05, fontsize=12) 
ax2.set_xticklabels([]) 
ax2.set_yticklabels([]) 
cb2=plt.colorbar(i2,ax=ax2,fraction=0.046, pad=0.04,ticks=[UU.min(),(UU.min()+UU.max())/2.,UU.max()],format='%.2f') 
cb2.ax.tick_params(labelsize=8) 

ax3 = plt.subplot(233) # creates first axis 
ax3.set_xticks([0,2000,500,1000,1500]) 
ax3.set_yticks([0,2000,500,1000,1500]) 
i3 = ax3.imshow(resU,cmap='hot',extent=(X.min(),2000,Y.min(),2000),vmin=0.,vmax=0.1) 
ax3.imshow(scipy.ndimage.filters.gaussian_filter(masquey2, 3),cmap='hot',alpha=0.2,extent=(X.min(),2000,Y.min(),2000)) 
ax3.set_title("$\mathrm{\mid \/ Ux_{mes} - Ux_{cal}\mid \/ (pix)}$ ", y=1.05, fontsize=12) 
cb3=plt.colorbar(i3,ax=ax3,fraction=0.046, pad=0.04,ticks=[0.,0.1],format='%.2f') 
ax3.set_xticklabels([]) 
ax3.set_yticklabels([]) 
cb3.ax.tick_params(labelsize=8) 
plt.gcf().tight_layout() 

I m utilizzando "plt.gcf() tight_layout()" in modo da avere figure che dont sovrapporre ...

risposta

9

Se si sta salvando figure fuori per immagini su disco, è possibile fare qualcosa di simile per impostare la dimensione:

fig.set_size_inches(10, 15) 
fig.savefig('image.png', dpi=100) 

Se si desidera solo per visualizzare a una certa dimensione si può provare:

plt.figure(figsize=(1,1)) 

Dove le dimensioni sono impostate in pollici.

Ecco una spiegazione dei parametri impostabili con figure: http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure

Problemi correlati