Python/Basic Data Analysis

[Python] matplotlib 이용하여 히스토그램, 산점도 그리기

JKyun 2017. 12. 29. 02:40

안녕하세요. 우주신 입니다.


이번 시간에는 히스토그램과 산점도 그리는 방법에 대해 배워보겠습니다.



먼저, pandas를 이용하여 웹에서 csv 파일을 불러왔습니다.


상점 번호, 연도, 기간, p1매출액.. 등을 기준으로 데이터프레임을 만들었습니다.


이 중 p1sales의 데이터를 히스토그램과 산점도로 시각화 해보겠습니다.


1. 히스토그램 (Histogram)


plt.hist(df['p1sales'])

-plt.hist() 함수 안에 df의 열 'p1sales' 데이터를 넣었습니다. 


Y축에는 빈도수가, X축에는 매출액을 기준으로 히스토그램이 출력됐습니다.


X축 매출액의 범위를 조정해보겠습니다. 

plt.hist(df['p1sales'], list)

-list 자리에 X축 범위를 지정할 수 있습니다. list에 반복문을 활용하여 0부터 300까지 데이터를 넣은 후, 이를 X축 범위로 적용하였습니다.


첫번째 히스토그램과 비교했을 때 X축의 범위가 바뀐 것을 확인할 수 있습니다.


조금 더 이쁘게 만들어보겠습니다.

plt.hist(df['p1sales'], list, histtype='bar', rwidth=0.9)

-histtype는 히스토그램의 type를 정하는 기능이고, rwidth는 막대 그래프 간의 간격을 설정할 수 있는 기능입니다. 

그 외 더 자세한 기능은 구글링!


훨씬 더 깔끔해졌어요. 마지막으로 X축, Y축 label과 그래프의 제목을 넣어주겠습니다.


plt.xlabel(), plt.ylabel()

-말 그대로 x축 label과 y축 label의 이름을 지정해주는 함수 입니다. x축에는 'Numbers'를 y축에는 'Counting'을 입력했습니다.

plt.title()

-그래프의 메인 제목을 입력하는 함수 입니다.



2. 산점도 (Scatterplot)


산점도는 직교 좌표계에 이용해 두 개 변수 간의 관계를 나타내는 방법입니다.


매 주(Week)에 따른 매출액(p1sales) 간의 관계를 알아보겠습니다.

plt.scatter(X, Y)

-X와 Y의 자리에 각각 df['Week'] 변수와 df['p1sales'] 변수가 입력됐습니다.


X축은 기간, Y축은 매출액을 기준으로 데이터에 해당하는 점들이 찍힌 것을 확인할 수 있습니다.


더 이쁘게 만들어 보겠습니다.

plt.scatter(df['Week'], df['p1sales'], label='skitscat', color='r', s=30, marker='o')

-color는 red로 지정하였고 s는 size의 약자입니다. marker는 점의 type를 설정할 수 있습니다.





수고하셨습니다