본문 바로가기
IT/Python 데이터 분석 활용

[Python] 시각화 plot() (Matplotlib,Pandas)

by Tony Jung 2024. 6. 4.
반응형

Matplotlib

Matplotlib는 Python 프로그래밍 언어 및 수학적 확장 NumPy 라이브러리를 활용한 시각화 라이브러리 입니다. Matplotlib 라이브러리를 이용하면 데이터를 쉽게 시각화할 수 있답니다. 

우선 시각화를 위해 아래와 같은 엑셀 예제 파일을 준비해볼게요. Data,Day,Sales1,Sales2 열을 같고 있는 1개월치 매출 데이터입니다. 

Plot 

Plot은  일반적으로 둘 이상의 변수 간의 관계를 보여주는 그래프로 보시면됩니다. Matplotlib을 사용하기 위해서는 우선 설치를 하셔야 합니다. 터미널에서 pip install matplotlib, pip install Numpy 를 이용하여 먼저 설치 해주세요. 

자. 엑셀에서 가져온 데이터의 'Day' 열과  'Sales1'열을 이용하여 날짜별 매출 실적 그래프를 .기본 문법은 plt.plot(x,y) 입니다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

#엑셀을 불러와서 Pandas에 넣습니다. 
df=pd.read_excel('c:\Sample2.xlsx')
#가져온 데이터 확인 
df.info()

#x는 Day, y는 Sales1 값으로 간단한 Plot 차트 생성 
plt.plot(df['Day'],df['Sales1'])
# 화면에 출력하기 위해서는 show()
plt.show()

아래와 같이 X는 Day, Y는 Sales1의 데이터로 그래프가 생성됩니다. 

여기서 Sales2값도 같이 표기하고 싶을 때는 plt.plot(x value, y value, x value, y1 value) 로 입력하시면 됩니다. 여기서 주의할 점은 표현하고자 하는 선들의  기준이 되는 x값은 서로 동일해야 합니다. 

#다중선 그래프 
plt.plot(df['Day'],df['Sales1'],df['Day'],df['Sales2'])

반응형

 

레이블 지정하기 

위의 그래프는 단순 값만 표기하였지만  축레이블, 범례, 선, 색상, 마커등을 지정하여 보다 직관적으로 만들 수 있습니다. 우선 레이블 지정 예시입니다. 코드는 위의 예시 코드와 연결하여 사용하시면 됩니다.

#다중선 그래프 
plt.plot(df['Day'],df['Sales1'],df['Day'],df['Sales2'])
#----------------------------------------------------------
#x축 라벨지정 
plt.xlabel('Day')
#y축 라벨지정
plt.ylabel('Sales')
#----------------------------------------------------------
plt.show()

범례 지정하기 

표시된 선이 어떤 값을 의미하는지 범례를 지정할 수 있습니다. 이전 코드의  (plt.plot()) 를 분리하여 label을 지정해주고 legend()함수로 화면에 표시해주시면 됩니다.

plt.plot(df['Day'],df['Sales1'], label='Sales1')
plt.plot(df['Day'],df['Sales2'], label='Sales2')
plt.legend()

plt.show()

legend함수에는 ncol 파라메터가 있는데 이는 범례를 표기할 열의 개수로 보시면 됩니다. 기본 legend() 함수를 사용하면 ncol=1 로 지정되며 때에 따라 ncol=2 등으로 표기 할 수 있습니다. (ex: legend(ncol=2))   

범례의 폰트 사이즈는 plt.legend(fontsize=14)를 이용하여 지정 가능합니다. 

선 종류

데이터의 표현하기 위한 선은 Solid, Dashed, Dotted, Dash-dot 의 4가지 형태가 있습니다. 사용 방법은 포맷 문자열을 사용하는 방법과 linestyle을 지정하는 방법이 있습니다. 

#Solid 라인 설정
plt.plot(df['Day'],df['Sales1'],'-', label='Sales1')
#Dotted 라인 설정
plt.plot(df['Day'],df['Sales2'],':', label='Sales2')
plt.legend()

plt.show()

포맷 문자열 대신 'solid','dashed','dotted','dash-dot'을 지정하여 linestyle로도 지정이 가능합니다. 아래는 위와 동일한 결과를 보여주는 linestyle 예제입니다.

#Solid 라인 설정
plt.plot(df['Day'],df['Sales1'],linestype='solid', label='Sales1')
#Dotted 라인 설정
plt.plot(df['Day'],df['Sales2'],linestype='dotted', label='Sales2')
plt.legend()

plt.show()

 

마커 지정

일반적으로 특별한 설정이 없으면 실선형태로 그려지지만 값의 위치에 마커를 표시 할 수 있습니다. 이는 선의 형태를 표시하는 포맷 문자열과 같이 사용 할 수 있으며, 마커만 또는 선과 마커를 동시에 표기할 수 있습니다. 

형식은 색+마커종류+선종류 입니다. 예를들어 plt.plot(df['Day'],df['Sales1'],'bo-', label='Sales1')라고 표기를 하면 b는 blue를 의미하고 'o'는 원형 그리고 '-'는 solid 선종류를 의미합니다. 

#Blue+Circle marker+ Solid 라인 설정
plt.plot(df['Day'],df['Sales1'],'bo-', label='Sales1')

#red+ triangle_down marker+ Dotted 라인 설정
plt.plot(df['Day'],df['Sales2'],'rv:', label='Sales2')

plt.legend()

plt.show()

색상표와 마커 종류표는 아래와 같습니다. 아래의 포맷 문자열을 활용하면 손쉽게 구현 하실수 있답니다. 

마커도 선 종류의 linestyle 처럼 marker 파마미터를 이용할 수 있습니다. marker 파라미터는 포맷 문자열 보다 더욱 많은 마커형태를 지정할 수 있습니다. 

plt.plot(x,y, marker='o')

선색상 

선 색상 역시 포맷 문자열과 color 키워드로 설정 가능합니다. 지정하지 않으면 기본적으로 matplotilb은 10가지 색상으로 자동 반복되어 지정됩니다. 

#포맷 문자열로 blue 라인 설정 
plt.plot(df['Day'],df['Sales1'],'b', label='Sales1')
#color 키워드로 blue 라인 설정 
plt.plot(df['Day'],df['Sales2'],color='blue', label='Sales2')
#color 키워드에 hex code 로 Blue 라인 설정 
plt.plot(df['Day'],df['Sales2'],color='#1f77b4', label='Sales2')

아래는 기본 색상 정보입니다. 

포맷 문자열
css 색상

 

 

 

반응형

댓글