2010-08-16 3 views
1

나는 이걸 따라 갔다. demo, 내 필요에 맞도록 수정했고, 두 개의 그래프를 그리는 함수를 사용하도록 바꿨지 만 지금은 전혀 작동하지 않는다. plt.show() 또는 plt.savefig()matplotlib weirdness, 내 그래프를 그리지 않고있다

여기에 왜 이런 일

import csv 
import numpy as np 

import matplotlib 
matplotlib.use('Agg') 

import matplotlib.pyplot as plt 
import matplotlib.mlab as mlab 

# I converted excel to a csv file 
data = [x for x in csv.reader(open('ASS1_Q1.csv'))] 

question1 = {} 
question1['males'] = [] 
question1['females'] = [] 
for x in data: 
    if x[0].lower() == "male": 
     question1["males"].append(float(x[1])) 
    elif x[0].lower() == "female": 
     question1['females'].append(float(x[1])) 
    else: 
     print "Not a valid dataline", x 

def plot_graph(data, filename): 

    fig = plt.figure() 
    ax = fig.add_subplot(111) 

    n, bins, patches = ax.hist(np.array(data), bins=13, align='mid', facecolor='#888888') 

    ax.set_xlabel('Speed in kph') 
    ax.set_ylabel('Amount of Females') 

    ax.set_xlim(min(data, max(data))) 

    # plt.savefig(filename) 
    plt.show()   

plot_graph(question1['males'], "ASS1Q1-males.eps") 
#plot_graph(question1['females'], "ASSQ2-females.eps") 
print summary(question1['males']) 
print summary(question1['females']) 

누군가가 설명 할 수 내 코드입니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

보십시오 당신에게 matplotlib.use로 전송 될 수있는 유효한 문자열 인수를 표시합니다

import matplotlib 
matplotlib.use('Agg') 

명령

python -c 'import matplotlib; matplotlib.use("")' 

을 제거. 내 컴퓨터에서 'Agg'가 유효한 것으로 나열되어 있지만이 설정이되면 출력이 표시되지 않습니다. 호기심이 많다면, 작동하는 것을 찾을 때까지 다양한 옵션을 시도해 볼 수 있습니다.

당신이 원하는 하나를 찾을

, 당신은 또한 더 편리한에서

backend  : GtkAgg 

같은 것을 설정하는 경우 사용자의 ~/.matplotlib/matplotlibrc 대신 matplotlib.use(...)를 사용하여.

+0

감사합니다. 지금은 –

+0

입니다. 문제는 36 번 라인을 찾았습니다. 나는 괄호를 잘못 붙였습니다./그 일이 어떻게 일어 났는지는 모르겠지만, 자기 자신을 더 잘 설명해 주었으면합니다. 대신 그래프 –

+0

@ 대니얼, 내 제안이 잘못된 방향으로 벗어 났음에도 불구하고 문제를 발견 한 것을 매우 기쁘게 생각합니다. :) – unutbu