2013-04-23 4 views
-1

파이썬에서하기 matplotlib를 사용하여 .txt 파일 데이터에서 막대 차트 만드는 방법 :다음과 같이 우리는 텍스트 파일의 데이터가

긍정적 : 20

부정적인 : 10

중립 : 30

양수, 음수, 중립 레이블이며 20, 10, 30은 개수입니다. 내 요구 사항은 위의 데이터에 대한 막 대형 차트를 그리는 것입니다. X 축은 lables이어야하고 Y 축은 개수 여야합니다. 파이썬에서 matplotlib을 사용하여이 작업을 수행하는 방법을 알려주시겠습니까?

이 코드를 시도했지만 일부 오류

f=open('/var/www/html/form/tweetcount.txt','r') 

line = (f.next() for i in range(4)) 
pieces = (lin.split(':') for lin in line) 

labels,values = zip(*pieces) 

N=len(values) 

ind = arange(N) 

plt.bar(ind,labels) 
+0

[무엇을 시도해 봤습니까?] (http://whathaveyoutried.com)이 문제의 두 부분으로는 텍스트 파일을 읽고 막대 그래프를 만드는 것입니다. 후자는'plt.bar'를 호출하고 레이블을 설정함으로써 수행됩니다. – Dougal

+0

요구 사항에 맞게이 예제를 수정하십시오. http://matplotlib.org/examples/pylab_examples/custom_ticker1.html – wim

+0

코드를 사용하여 내 게시물을 편집했습니다. –

답변

1

을 받고있다 나는 당신의 문제는 잘못된 값을 플롯하려고했던 것이 었습니다 생각합니다.

이 코드는 당신이 원하는 것을 수행해야합니다

import matplotlib.pyplot as plt 
import numpy as np 

# Collect the data from the file, ignore empty lines 
with open('data.txt') as f: 
    lines = [line.strip().split(': ') for line in f if len(line) > 1] 

labels, y = zip(*lines) 

# Generate indexes 
ind = np.arange(len(labels)) 

# Convert the y values from str to int 
y = map(int, y) 

plt.figure() 
plt.bar(ind, y, align='center') 
plt.xticks(ind, labels) 
plt.show() 

당신은 최종 결과 here을 볼 수 있습니다.