반응형

파이썬 Matplotlib을 이용한 데이터 시각화 프로그래밍7 - 파일로부터 데이터를 읽어서 그래프 그리기




첨부한 파일(births.txt)은 1880년부터 2011년까지 미국에서 태어난 남녀 출생아 수를 정리한 데이터입니다.

이 파일은 아래와 같은 형식으로 되어 있습니다.


1880, 90993, 110491
1881, 91954, 100745
1882, 107850, 113688

....

....


각 숫자는 콤마로 구분되어 있고 첫번째 데이터는 년도, 두번째 데이터는 여자 아기 출생수, 세번째 데이터는 남자 아기 출생수입니다.

우리가 해볼 것은 이 데이터를 읽어서 여자 아기와 남자 아기의 출생수 추이를 그래프로 나타내 보고자 합니다.


자, 코드를 바로 보실까요..




>>> import csv


파일로부터 데이터를 편리하게 읽어 들이기 위해 csv 모듈이 제공하는 reader()를 사용할 예정입니다.



>>> years = range(1880, 2012)


년도의 범위는 1880년에서 2011년 까지로 합니다.



>>> with open(datafile, 'rb') as f:

          data = csv.reader(f, delimiter = ',')

          for d in data:

               pieces.append(d)


births.txt 파일을 바이너리 읽기 모드로 열고 그 핸들을 f로 합니다. csv.reader(f, delimiter = ',')은 구분자를 콤마로 해서 파일 f의 데이터를 읽고 구분하여 변수 data에 할당합니다.

data는 [['1880', '90993', '110491'], ['1881', '91954', '100745'], ['1882', '107850', '113688'],....] 와 같은 형식이 됩니다.


x, y1, y2에 각각 data의 첫번째 데이터인 년도, 두번째 데이터인 여자 아기 출생수, 세번째 데이터인 남자 아기 출생수만 따로 모아서 구성합니다.



>>> p1 = plt.plot(x, y1, 'r^--', label='female')

>>> p2 = plt.plot(x, y2, 'bs-', label='male')


데이터를 그래프로 그립니다. plot의 세번째 인자인 'r^--'은 점선으로 연결된 빨간색 삼각형,  'bs-'은 선으로 연결된 파란색 사각형을 의미합니다. 그래프를 그릴 때 마커에 대한 내용은 4편에서 이미 살펴보았습니다.  


반응형

+ Recent posts