運行以下代碼以生成兩張圖像,並給出具有不同寬高比的圖形,如何強制執行圖形的圖形縱橫比? (不是圖像)如何在向圖中添加更多對象時保持matplotlib圖的縱橫比?
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)
正如我們所看到的,每個「象素」的第二圖像稍微不平方(擠在他的兩側)。如何在添加新圖形信息的同時保持圖形縱橫比?
漂亮的筆記本。和OO有關的好的提示。 – Lin