📍 Matplotlib
: 다양한 형태의 그래프를 통해서 데이터 시각화를 할 수 있는 라이브러리
In [1]:
import matplotlib.pyplot as plt
✔️ 한글폰트 설정
In [2]:
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows
matplotlib.rcParams['font.family'] = 'AppleGothic' # Mac
matplotlib.rcParams['axes.unicode_minus']=False # 한글 폰트 사용 시, 마이너스 글자가 깨지는 현상 해결
✅ 막대 그래프
: plt.bar(x, y, color='color' / [color_list], width=width, alpha=alpha)
In [3]:
labels = ['강백호', '서태웅', '정대만'] # 이름
values = [190, 187, 184] # 키
plt.bar(labels, values)
plt.show()
In [4]:
plt.bar(labels, values, color = 'g', width=0.5) # bar 넓이 0.5로 설정
plt.show()
In [5]:
colors = ['r', 'g', 'b']
plt.bar(labels, values, color = colors, alpha=0.5)
plt.show()
✔️ 축
: plt.xticks(x, ticks_list, label='label', rotation=rotation)
plt.yticks(label='label', rotation=rotation)
plt.ylim(y1, y2)
In [6]:
plt.bar(labels, values)
plt.ylim(175, 195)
plt.show()
In [7]:
plt.bar(labels, values)
plt.xticks(rotation=45) # x축의 이름 데이터 각도를 45도로 설정
plt.yticks(rotation=45) # y축의 키 데이터 각도를 45도로 설정
plt.show()
In [8]:
labels = ['강백호', '서태웅', '정대만'] # 이름
values = [190, 187, 184] # 키
ticks = ['1번학생', '2번학생', '3번학생']
plt.bar(labels, values)
plt.xticks(labels, ticks)
plt.show()
✔️ 패턴(hatch)
: bar[n].set_hatch('hatch')
In [9]:
bar = plt.bar(labels, values)
bar[0].set_hatch('/') # ////
bar[1].set_hatch('x') # xxxx
bar[2].set_hatch('..') # ....
plt.show()
✔️ 텍스트
: for idx, rect in enumerate(bar):
plt.text(idx, rect.get_height()+(height), values[idx], ha='location', color='color')
In [10]:
bar = plt.bar(labels, values)
for idx, rect in enumerate(bar):
plt.text(idx, rect.get_height()+0.5, values[idx], ha='center', color='blue')
plt.show()
✅ 수평막대 그래프
: plt.barh(x, y)
plt.xlim(x1, x2)
In [11]:
plt.barh(labels, values)
plt.show()
In [12]:
plt.barh(labels, values)
plt.xlim(175, 195)
plt.show()
✅ 누적막대 그래프
: plt.bar(x1, y1)\ plt.bar(x2, y2, bottom=value)
In [13]:
import pandas as pd
df = pd.read_excel('score.xlsx')
df
Out[13]:
In [14]:
plt.bar(df['이름'], df['국어'])
plt.bar(df['이름'], df['영어'])
plt.show()
In [15]:
plt.bar(df['이름'], df['국어'])
plt.bar(df['이름'], df['영어'], bottom=df['국어'])
plt.show()
In [16]:
# plt.bar(df['이름'], df['국어'])
plt.bar(df['이름'], df['영어'], bottom=df['국어'])
plt.show()
In [17]:
plt.bar(df['이름'], df['국어'], label='국어')
plt.bar(df['이름'], df['영어'], bottom=df['국어'], label='영어')
plt.bar(df['이름'], df['수학'], bottom=df['영어'] + df['국어'], label='수학')
plt.xticks(rotation=60)
plt.legend()
plt.show()
✅ 다중막대 그래프
: plt.bar(index-w, y, width=w)
plt.xticks(index, x)
In [18]:
import numpy as np
N = df.shape[0]
index = np.arange(N)
w = 0.25
plt.bar(index-w, df['국어'])
plt.bar(index, df['영어'])
plt.bar(index+w, df['수학'])
plt.xticks(index, df['이름'])
plt.show()
In [19]:
plt.figure(figsize=(10, 5))
plt.title('학생별 성적')
plt.bar(index-w, df['국어'], width=w, label='국어')
plt.bar(index, df['영어'], width=w, label='영어')
plt.bar(index+w, df['수학'], width=w, label='수학')
plt.legend(ncol=3)
plt.xticks(index, df['이름'], rotation=60)
plt.show()
참고 : 나도코딩 파이썬 코딩 무료 강의 (활용편5) - 데이터 분석 및 시각화, 이 영상 하나로 끝내세요
'Pandas' 카테고리의 다른 글
[Pandas / 시각화] 판다스 산점도그래프 - scatter (1) | 2024.01.15 |
---|---|
[Pandas / 시각화] 판다스 원그래프 - pie (1) | 2024.01.15 |
[Pandas / 시각화] 판다스 꺾은선그래프 - plot (1) | 2024.01.15 |
[Pandas / 시각화] 판다스 다중그래프, 데이터프레임활용 - subplots, savefig (0) | 2024.01.15 |
[Pandas / 시각화] 판다스 matplitlib기본 - 한글폰트설정, title, 축, 범례 (1) | 2024.01.15 |