【发布时间】:2016-03-02 08:30:36
【问题描述】:
运行以下代码生成两个图像,给我不同纵横比的图形,如何强制图形的图形纵横比? (不是图片)
import pandas as pd
import numpy as np
import numpy.ma as ma
import matplotlib.pyplot as plt
msize=25
rrange=int(msize**0.5)
jump=3
start=int(jump/2)
X,Y=np.meshgrid(range(0,msize),range(0,msize))
dat=np.random.rand(msize,msize)*rrange
msk=np.zeros_like(dat)
msk[start::jump,start::jump].fill(1)
mdat=msk*dat
mdat[mdat==0]=np.nan
mmdat = ma.masked_where(np.isnan(mdat),mdat)
fargs={ 'edgecolor': 'w',
'facecolor': 'w',
'frameon': True,
}
fig = plt.figure(figsize=(10,10),**fargs)
cmap = plt.get_cmap('RdYlBu')
cmap.set_bad(color='#cccccc', alpha=1.)
plot = plt.pcolormesh(X,Y,mmdat,cmap=cmap)
plot.axes.set_ylim(0,msize-1)
plot.axes.set_xlim(0,msize-1)
fargs['bbox_inches']='tight'
fig.savefig("masked100.png",dpi=100,**fargs)
plt.colorbar()
fig.savefig("masked101.png",dpi=100,**fargs)
如我们所见,第二张图片中的每个“像素”都略微不成正方形(在他的两侧被挤压)。如何在添加新图形信息的同时保留图形纵横比?
【问题讨论】:
标签: python matplotlib