2015-01-26 5 views
-1

나는 affraid이 소리는 멍청한 질문처럼 들리지만, 나는 내 인물 주변에 컬러 바를 코딩하는 데 어려움을 겪고있다. python에서 colorbar를 올바르게 추가하는 방법 2.7.2?

나는 문서와 예제 이런 종류의 읽기 시간이 좀 걸렸지 : 년 Colorbar (맵핑이, CAX = 없음, 도끼 = 없음, 진정한 = use_gridspec, ** kw)

를 내가 필요한 것을 이해할 수 없다 그것을 작동하게합니다. 대부분이 오류가 발생합니다 : AttributeError : 'AxesSubplot'객체에 'autoscale_None'속성이 없습니다.

나중에 자세히 설명해 드리겠습니다. easiet/더 간단한 방법은 무화과를 따라 컬러 바를 튀기는데 자동으로 스케일을 조정합니다 (easiet 방법 인 경우). 아니면 이전에 내 값의 최대 값과 최대 값을 결정해야합니까?

도움 주셔서 감사합니다.

다음은 코드입니다 (그림 1 만 중요). 제대로 설계되지 않았습니다. 여기에 이전 파일의 데이터를로드하는 방법이 나와 있습니다.

from pylab import * 
import matplotlib.animation as animation 

from Tkinter import Tk 
from tkFileDialog import askopenfilename 

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing 
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file 

with load(filename) as data: 
    XYslice = data['XYslice'] 
    XZslice = data['XZslice'] 
    target = data['target'] 
    Over = data['Over'] 
    wvl=data['wvl'] 
    NA = data['NA'] 
    Dt = data['t'] 
    dz = data['dz'] 

Ntime,N,Nplans=shape(XZslice) 
dxy=wvl/(2.0*NA)/Over 

thebigone=max(XYslice[:,N/2,N/2]) 
XZslice[0,0,0]=thebigone 
XYslice[0,0,0]=thebigone 



fig=figure(1,figsize=(12,6)) 
ax1=fig.add_subplot(1,2,1) 
xlabel(r"$x (\mu m)$") 
ylabel(r"$y (\mu m)$") 
ax2=fig.add_subplot(1,2,2) 
xlabel(r"$x (\mu m)$") 
ylabel(r"$z (\mu m)$") 

I=zeros(shape(Dt)) 
dI=zeros(shape(Dt)) 

im1=ax1.imshow(XYslice[0,:,:],interpolation='none')#,extent=[-N*dxy/2.0,N*dxy/2.0,-N*dxy/2.0,N*dxy/2.0],cmap='hot') 
im2=ax2.imshow(XZslice[0,:,:],interpolation='none')#,extent=[-N*dxy/2.0,N*dxy/2.0,-Nplans*dz/2.0,Nplans*dz/2.0],cmap='hot') 

for ii in range(len(Dt)): 
    zedata=float64(((XYslice[ii,:,:]**2)[where(target==1)]).reshape(-1)) 
    dI[ii]=(sqrt(var(zedata))) 
    I[ii]=(mean(zedata)) 

figure(2) 
subplot(121) 
plot(Dt,array(I),'o',Dt,array(dI)) 
grid('on') 
subplot(122) 
#plot(Dt,array(dI)/array(I)) 
xlabel('Dt ($\mu m^ 2$)') 

grid('on') 

# 
def init(): 
    im1.set_data(XYslice[0,:,:]) 

    im2.set_data(XZslice[0,:,:]) 
    return([im1,im2]) 

def animate(t): 
    im1.set_data(XYslice[t,:,:]) 
    im2.set_data(XZslice[t,:,:]) 
    return [im1,im2] 

ani = animation.FuncAnimation(fig, animate, np.arange(len(Dt)),interval=250, 
           blit=True,init_func=init,repeat=True) 

show()  
+0

아니요, 나중에 "세부 사항을 생각해 보지 않겠습니다". 자신이 가지고있는 코드를 이상적으로 [MCVE] (http://stackoverflow.com/help/mcve) 형태로 제공해주십시오. – Ffisegydd

+0

답변은 상황에 따라 다릅니다. 모든 상황에 맞는 답은 없습니다. – unutbu

+0

사람들이 코드를 추가했습니다! 감사 – Magea

답변

0

좋아요. 어떻게하는지 알 수 있습니다. 정말 쉽습니다. im24의 정의 바로 뒤에 colorbar(im2)을 추가해야했습니다 ...

좋은 하루 보내십시오!

관련 문제