2017-10-31 1 views
-1

저는 1948 년 이후로 파이썬을 사용하여 매월 실업률 막대 그래프를 작성해야합니다. 쉼표로 구분 된 파일 (.csv)을 사용해야하지만 파일에 여러 개의 쉼표가 포함되어 있으며 split 명령을 사용하여 각 변수를 분리하는 방법을 잘 모릅니다. 아래에 지금까지 코드와 분할 및 정렬해야하는 파일을 붙여 넣었습니다. 나는 여기서부터 어디로 가야할지 확신이 없으며, 조언을 많이 주시면 감사하겠습니다. 감사.어떻게이 데이터를 파이썬을 사용하여 플로팅 할 수 있습니까?

1948,3.4,3.8,4.0,3.9,3.5,3.6,3.6,3.9,3.8,3.7,3.8,4.0 1949,4.3,4.7,5.0,5.3,6.1,6.2,6.7,6.8,6.6, 7.9,6.4,6.6 1950,6.5,6.4,6.3,5.8,5.5,5.4,5.0,4.5,4.4,4.2,4.2,4.3 1951,3.7,3.4,3.4,3.1,3.0,3.2,3.1,3.1, 3.3.3.5, 3.5.3, 2.7, 9, 3, 4.04.2, 4.1.3, 2.2.4, 4.3,4.2,4.1,4.4,4.5,5.1,5.2 1958,5.8,6.4,6.7,7.4,7.4,7.3 , 7.5,7.4,7.1,6.7,6.2,6.2 1959,6.0,5.9,5.6,5.2,5.1,5.0,5.1,5.2,5.5,5.7,5.8,5.3 1960,5.2,4.8,5.4,5.2,5.1 , 5.4,5.5,5.6,5.5,6.1,6.1,6.6 1961,6.6,6.9,6.9,7.0,7.1,6.9,7.0,6.6,6.7,6.5,6.1,6.0 1962,5.8,5.5,5.6,5.6 , 5.5,5.5,5.4,5.7,5.6,5.4,5.7,5.5 1963,5.7,5.9,5.7,5.7,5.9,5.6,5.6,5.4,5.5,5.5,5.7,5.5 1964,5.6,5.4,5.4 , 5.3,5.1,5.2,4.9,5.0,5.1,5.1,4.8,5.0 1965,4.9,5.1,4.7,4.8,4.6,4.6,4.4,4.4,4.3,4.2,4.1,4.0 1966,4.03.8 , 3.8,3.8,3.9,3.8,3.8,3.8,3.7,3.7,3.6,3.8 1967,3.9,3.8,3.8,3.8,3.8,3.9,3.8,3.8,3.8,4.0,3.9,3.8 1968,3.7 , 3.8,3.7,3.5,3.5,3.7,3.7,3.5,3.4,3.4,3.4,3.4 1969,3.4,3.4,3.4,3.4,3.4,3.5,3.5,3.5,3.7,3.7,3.5,3.5 1970 , 3.9 , 4.2,4.4,4.6,4.8,4.9,5.0,5.1,5.4,5.5,5.9,6.1 1971,5.9,5.9,6.0,5.9,5.9,5.9,6.0,6.1,6.0,5.8,6.0,6.0 1972 , 5.8,5.7,5.8,5.7,5.7,5.7,5.6,5.6,5.5,5.6,5.3,5.2 1973,4.9,5.0,4.9,5.0,4.9,4.9,4.8,4.8,4.8,4.6,4.8,4.9 1974,5.1,5.2,5.1,5.1,5.1,5.4,5.5,5.5,5.9,6.0,6.6,7.2 1975,8.1,8.1,8.6,8.8,9.0,8.8,8.6,8.4,8.4,8.4,8.3 , 8.2 1976,7.9,7.7,7.6,7.7,7.4,7.6,7.8,7.8,7.6,7.7,7.8,7.8 1977,7.5,7.6,7.4,7.2,7.0,7.2,6.9,7.0,6.8,6.8 , 6.8,6.4 1978,6.4,6.3,6.3,6.1,6.0,5.9,6.2,5.9,6.0,5.8,5.9,6.0 1979,5.9,5.9,5.8,5.8,5.6,5.7,5.7,6.0,5.9 , 6.0, 5.9, 6.0, 8.35, 8.6 , 7.6,7.9,8.3,8.5 1982,8.6,8.9,9.0,9.3,9.4,9.6,9.8,9.8,10.1,10.4,10.8,10.8 1983,10.4,10.4,10.3,10.2,10.1,10.1,9.4,9.5,9.2,8.8,8.5 , 8.3 1984,8.0,7.8,7.8,7.7,7.4,7.2,7.5,7.5,7.3,7.4,7.2,7.3 1985,7.3,7.2,7.2,7.3,7.2,7.4,7.4,7.1,7.1,7.1 , 7.0,7.0 1986,6.7,7.2,7.2,7.1,7.2,7.2,7.0,6.9,7.0,7.0,6.9,6.6 1987,6.6,6.6,6.6.3,6.3,6.2,6.1,6.0,5.9 , 6.0,5.8,5.7 1988,5.7,5.7,5.7,5.4,5.6,5.4,5.4,5.6,5.4,5.4,5.3,5.3 1989.5.4,5.2,5.0,5.2,5.2,5.3,5.2,5.2 , 5.3,5.3,5.4,5.4 1990,5.4,5.3,5.2,5.4,5.4,5.2,5.5,5.7,5.9,5.9,6.2,6.3 1991,6.4,6.6,6.8,6.7,6.9,6.9,6.8 , 6.9, 6.7, 7.0, 7.0 , 6.9,6.8,6.7,6. 8,6.6,6.5 1994,6.6,6.6.5,6.4,6.1,6.1,6.1,6.0,5.9,5.8,5.6,5.5 1995,5.6,5.4,5.4,5.8,5.6,5.6,5.7,5.7, 5.6,5.5,5.6,5.6 1996,5.6,5.5,5.5,5.6,5.6,5.3,5.5,5.1,5.2,5.2,5.4,5.4 1997.5.3,5.2,5.2,5.1,4.9,5.0,4.9, 4.8,4.9,4.7,4.6,4.7 1998,4.6,4.6,4.7,4.3,4.4,4.5,4.5,4.5,4.6,4.5,4.4,4.4 1999,4.3,4.4,4.2,4.3,4.2,4.3,4.3,4.2,4.2,4.1,4.1,4.0 2000.4.0,4.1,4.0,3.8,4.0,4.0,4.0,4.1,3.9,3.9, 3.9,3.9 2001,4.2,4.2,4.3,4.4,4.3,4.5,4.6,4.9,5.0,5.3,5.5,5.7 2002,5.7,5.7,5.7,5.9,5.8,5.8,5.8,5.7,5.7, 5.7, 5, 9, 6, 0, 8, 9, 5.4,5.5,5.4,5.4 2005,5.3,5.4,5.2,5.2,5.1,5.0,5.0,4.9,5.0,5.0,5.0,4.9 2006,4.7,4.8,4.7,4.7,4.6,4.6,4.7, 4.7,4.5,4.4,4.5,4.4 2007,4.6,4.5,4.4,4.5,4.4,4.6,4.7,4.6,4.7,4.7,4.7,5.0 2008,5.0,4.9,5.1,5.0,5.4,5.6, 5.8,6.1,6.1,6.5,6.8,7.3 2009,7.8,8.3,8.7,9.0,9.4,9.5,9.5,9.6,9.8,10.0,9.9,9.9 2010.9.8,9.8,9.9,9.9.6, 9.4,9 .4,9.5,9.5,9.4,9.8,9.3 2011,9.1,9.0,9.0,9.1,9.0,9.1,9.0,9.0,9.0,8.8,8.6,8.5 2012,8.3,8.3,8.2,8.2,8.2 , 8.2,8.2,8.1,7.8,7.8,7.7,7.9 2013,8.0,7.7,7.5,7.6,7.5,7.5,7.3,7.3,7.2,7.2,6.9,6.7 2014.6.6,6.7,6.7,6.2 , 6.3,6.1,6.2,6.2,5.9,5.7,5.8,5.6 2015,5.7,5.5,5.4,5.4,5.5,5.3,5.2,5.1,5.0,5.0,5.0,5.0 2016,4.9,4.9,5.0 , 5.0,4.7,4.9,4.9,4.9,4.9,4.8,4.6,4.7

2017,4.8,4.7,4.5,4.4,4.3,4.4,4.3,4.4,4.2,,,

import matplotlib.pyplot as plt 

f_in = ('unemployment.csv', 'rt') 
X_labels = [] 
Y = [] 
for line in f_in: 
    line = line.strip() 
    month, year = line.split(',') 
    X_labels.append(month) 
    Y.append(int(year)) 
f_in.close() 
X = list(range(1, len(Y) + 1)) 
plt.bar(X, Y, tick_label = X_labels, align = 'center') 
plt.xlabel('Month') 
plt.ylabel('Year') 
plt.grid(True) 
plt.show() 

답변

0

Numpy를 사용하여 데이터를 읽는 것부터 시작합니다. 이는 파일을 처리하는 것보다 훨씬 쉽습니다. 수동으로. 데이터의 하위 집합 사용하여 작은 예 :

import numpy as np 
import matplotlib.pylab as pl 

# Load file with Numpy as 2D array 
f = np.loadtxt('file.txt', delimiter=',') 

# Slice array (remove year column), and reshape to 1D 
data = f[:,1:].reshape(-1)  

# Plot! 
pl.figure() 
pl.bar(np.arange(data.size), data) 

enter image description here

또는를 x 축에 더 유용한 뭔가 넣어 :

import numpy as np 
import matplotlib.pylab as pl 

# Load file with Numpy as 2D array 
f = np.loadtxt('file.txt', delimiter=',') 

# Slice array (remove year column), and reshape to 1D 
years = f[:,0].astype(np.int) 
data = f[:,1:].reshape(-1)  

# Plot! 
pl.figure() 
pl.bar(np.arange(data.size), data) 

# Set years as x-labels 
ax=pl.gca() 
ax.set_xticks(np.arange(0,data.size,12)) 
ax.set_xticklabels(years) 

enter image description here

관련 문제