2012-04-24 8 views
2

私は、ピラブのsubplot()関数を使って配列された単純なラインプロットの上に画像を貼り付けようとしています。しかし、imshowを呼び出すと、サブプロットの境界が変更されているように見え、set_position関数を使用してもこれらの境界を変更できません。画像をオーバーレイするときにpylabサブプット境界が変更される

基本的に、私は上部サブプロットをthis imageの下部と同じ幅にしたいと思います。

私はthis postとしてオートスケールをオフにしてみましたが、違いはありません。

ここに私のソースです:

import pylab as pl 

#Plotting results 
F=pl.figure() 

#First plot the unzoomed plot 
ax1=pl.subplot(211) 
ax2=pl.subplot(212) 

#Not relevant to problem... ax1.plot() & ax2.plot() commands 
for bl in range(len(bondLengths)): 
    ls=styles[bl] 
    lw=widths[bl] 
    for cf in range(len(chgcarfiles)): 
     c=colors[cf] 
     avgi=avgIBLs[cf][bl] 
     L=len(avgi) 
     ax1.plot([bondLengths[bl]*(x+0.5)/L for x in range(-1,L/2,1)],avgi[len(avgi)/2-1:],c=c,ls=ls,lw=lw) 
     ax2.plot([bondLengths[bl]*(x+0.5)/L for x in range(-1,L/2,1)],avgi[len(avgi)/2-1:],c=c,ls=ls,lw=lw) 

ax1.set_xlim([0,2.5]) 
ax1.set_ylim([0.5,4.9]) 
ax2.set_xlim([0,1.2]) 
ax2.set_ylim([0.88,0.96]) 

#Load up & insert an image 
slice=pl.loadtxt("somedata1") 
ax1.autoscale(False) 
ax1.imshow(slice,extent=[0.05,0.75,3.4,4.1])  

pl.figtext(0.45,0.03,r"Distance ($\AA$)") 
pl.figtext(0.05,0.65,r"Partial Charge Density ($\rho/rho_{avg}$)",rotation='vertical') 

pl.show() 

答えて

1

をするだけimshowaspect='auto'を指定します。あなたはimshowでアスペクトkwargにスカラを指定した場合、imshowは1軸のアスペクト比(または別の番号を設定しますデフォルトでは

例:

import matplotlib.pyplot as plt 
import numpy as np 

fig, axes = plt.subplots(nrows=2) 

for ax in axes: 
    ax.plot(np.random.random(100)) 

axes[1].autoscale(False) 
imdata = np.random.random((10,10)) 
axes[1].imshow(imdata, aspect='auto', extent=[5, 20, 0.3, 0.8]) 

plt.show() 

enter image description here

+0

もちろんアスペクト比 Iそれが私がチェックしなかった一つの財産だと思います。常にあなたが考える最後のものです。助けてくれてありがとう。 –

1

あなたはAX1の上にanonther斧を作成することができます。

import pylab as pl 

F=pl.figure() 

ax1=pl.subplot(211) 
ax2=pl.subplot(212) 

ax1.plot(pl.randn(100)) 
ax2.plot(pl.randn(100)) 

img = pl.randn(100, 100) 
ax3 = pl.axes([0.2, 0.65, 0.2, 0.2]) 
ax3.imshow(img) 

pl.show() 

enter image description here

+0

新しい軸のすべてのプロパティをリセットしなければならないのは面倒です。そうでなければこれがうまくいきます。 –

関連する問題