2012-06-01 3 views
0

파이썬 차트에서 walk 함수> .cnt 파일 찾기> 흥미있는 값 계산> 도형을 사용하여 디렉토리를 따라 걷고 있습니다. 하지만 문제는 내 prog이 첫 번째 폴더와 플롯을 처리 할 때 잘 동작한다는 것입니다.하지만 그 후 폴더를 읽고 플롯하면 오버랩됩니다. 내 코드에서 버그가 있는지 이해할 수 없습니다. 내가처럼 사용할 : 지금파이썬에서 겹쳐진 파이 플롯을 얻는 이유는 무엇입니까?

for root,dirs,files in os.walk(path): 
    aspCount = 0 
    gluCount = 0 
    aspCountCol1 = 0 
    aspCountCol2 = 0 
    gluCountCol1 = 0 
    gluCountCol2 = 0 

    listOfFile = glob.iglob(os.path.join(root,'*.cnt')) 
    for filename in listOfFile: 
     inp = open(filename,'r').read().strip().split('\n') 
     for line in map(str.split,inp): 

      k = line[-1] 
      m = line[0] 
      if k == 'ASP': 
       aspCountCol1 += 1 
      elif m == 'ASP': 
       aspCountCol2 += 1 
      if k == 'GLU': 
       gluCountCol1 += 1 
      elif m == 'GLU' 
       gluCountCol1 +=1 
        # here lies the problem for me !!!! 
     aspCount = aspCountCol1 + aspCountCol1 
     gluCount = gluCountCol1 + gluCountCol1 
     #now plotting...... 
     from pylab import * 
     figure(1, (figsize=(8,8)) 
     labels = 'asp','glu' 
     fracs = [asp_count,glu_count] 
     pie(fracs,explode=None,labels=labels,autopct='%1.1f%%',shadow=False) 
     c = 'fig.png' 
     savefig(os.path.join(root,c)) 

, 문제는이 코드를 내가 .CNT 파일을 포함하는 다양한 하위 폴더와 디렉토리를 처리하는 경우, 그것은 오류없이 간다. 그러나 첫 번째 폴더에 의해 생성 된 그래프는 괜찮습니다.하지만 prog이 다음 폴더를 처리 할 때 성공적으로 데이터를 처리하지만 생성 된 그래프는 이전 폴더와 겹칩니다. 내가 처리하는
파일이었다 :

LYS ARG 
ASP GLU 
GLU SAP 
JAS ASP 
SAK GLU 

답변

2

당신은 clf()와 플롯 사이에 pylab 플롯을 취소해야합니다.

또한 from pylab import * 번으로 보낼 이유가 없습니다. 작업을 할 때

는`오기 pyplot`과 수치뿐만 아니라 해당 모듈을 참조 권장합니까

+0

그리고'matplotlib' 워드 프로세서 (I 그런 루프에서 플롯 할 때 matplotlib API를 사용하는 것을 선호) 명시 적으로 축 스크립트. – JAB

관련 문제