반응형
matplotlib
- pyplot 객체를 사용하여 데이터를 표시
- pyplot 객체에 그래프를 쌓은 다음 show로 flush
- argument를 kwargs로 받기 때문에 alt+tab으로 확인이 어려움 그렇기때문에 메뉴얼을봄
import matplotlib.pyplot as plt
X = range(100)
Y = [value**2 for value in X]
plt.plot(X,Y)
plt.show()
#color code
#linestyle
#title
#legend - label
X1 = range(100)
Y1 = [value**2 for value in X]
X = range(100)
Y = [value+5 for value in X]
plt.plot(X,Y, color="r", linestyle="dashed", label="line1")
plt.plot(X1,Y1,c="b", ls="dotted", label="line2")
plt.title("TEST")
plt.legend(shadow=True, fancybox=True, loc="lower right")
plt.show()
- Scatter
- 산포도를 그릴 수 있음
import numpy as np
import matplotlib.pyplot as plt
data1 = np.random.rand(512,2)
data2 = np.random.rand(512,2)
plt.scatter(data1[:,0], data1[:,1], c = "b", marker="x")
plt.scatter(data2[:,0], data2[:,1], c = "r", marker="^")
plt.show()
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N)) **2
plt.scatter(x,y,s=area, c=colors, alpha=0.5)
plt.show()
- Bar
data = [[5., 25., 50., 20.],
[4., 23., 51., 17],
[6., 22., 52., 19]]
X = np.arange(0,8,2)
plt.bar(X + 0.00, data[0], color = 'b', width = 0.50)
plt.bar(X + 0.50, data[1], color = 'g', width = 0.50)
plt.bar(X + 1.0, data[2], color = 'r', width = 0.50)
plt.xticks(X+0.50, ("A","B","C", "D"))
plt.show()
data = np.array([[5., 25., 50., 20.],
[4., 23., 51., 17],
[6., 22., 52., 19]])
color_list = ["b","g","r"]
data_label = ["A","B","C"]
X = np.arange(data.shape[1])
for i in range(data.shape[0]):
plt.bar(X, data[i], bottom = np.sum(data[:i], axis=0),
color = color_list[i], label=data_label[i])
plt.legend()
plt.show()
A = [5., 30., 45., 22.]
B = [5, 25, 50, 20]
X = range(4)
plt.bar(X, A, color = 'b')
plt.bar(X, B, color = 'r', bottom = 60)
plt.show()
- Histogram
X = np.random.randn(1000)
plt.hist(X,bins=100)
plt.show()
- Boxplot
- 가운데 중간색 선은 중간값이고 박스는 50%의 데이터를 표현
- outlier데이터는 박스플롯 외에 o로표시됨
data = np.random.randn(100,5) plt.boxplot(data) plt.show()
matplotlib with pandas
- 산점도행렬
- 코릴레이션(상관관계)를 구하기 위함
- Scatter matrix
- 코릴레이션(상관관계)를 구하기 위함
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
raw = sns.load_dataset('titanic')
df = raw.corr()
sns.clustermap(df,
annot = True, # 실제 값 화면에 나타내기
cmap = 'RdYlBu_r', # Red, Yellow, Blue 색상으로 표시
vmin = -1, vmax = 1, #컬러차트 -1 ~ 1 범위로 표시
)
# 삼각형 으로 출력
df = raw.corr()
# 그림 사이즈 지정
fig, ax = plt.subplots( figsize=(10,10) )
# 삼각형 마스크를 만든다(위 쪽 삼각형에 True, 아래 삼각형에 False)
mask = np.zeros_like(df, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
# 히트맵을 그린다
sns.heatmap(df,
cmap = 'RdYlBu_r',
annot = True, # 실제 값 표시
mask=mask, # 표시하지 않을 마스크 부분 지정
linewidths=.3, # 경계면 실선 구분
cbar_kws={"shrink": .5},# 컬러바 사이즈 50%로 줄임
vmin = -1,vmax = 1 # 컬러바 범위 -1 ~ 1
)
plt.show()
반응형
'부스트캠프 AI Tech 2기 > Precourse' 카테고리의 다른 글
Tensor Manipulation 2 (0) | 2021.07.29 |
---|---|
Tensor Manipulation 1 (0) | 2021.07.28 |
통계학 맛보기 (0) | 2021.07.26 |
확률론 맛보기 (0) | 2021.07.26 |
딥러닝 학습방법 (0) | 2021.07.25 |