데이터 시각화 위한 다양한 그래프와 구체적인 파라미터를 살펴본다.
목차
1. pie 파이차트
1) 단일 파이차트
autopct, startangle, legend, loc
claim = data2.iloc[:3]
opinion = data2.iloc[3:]
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5))
plt.pie(claim['percent'], labels=claim['author_ban_status'], autopct='%1.2f%%', startangle=90)
plt.legend(labels=claim['author_ban_status'], loc='best')
plt.show()
2) subplot 그리기
fig, ax = plt.subplots(1, 2, figsize=(10,5))
ax[0].pie(claim['percent'], labels=claim['author_ban_status'], autopct='%1.1f%%', startangle=90)
ax[0].set_title("Claim")
ax[0].legend(labels=claim['author_ban_status'], loc = 'left')
ax[1].pie(opinion['percent'], labels=claim['author_ban_status'], autopct='%1.1f%%', startangle=90,labeldistance=1.1)
ax[1].legend(labels=claim['author_ban_status'], loc = 'left')
ax[1].set_title("Opinion")
plt.show()
2. histplot 히스토그램 히스토플랏
1) sns
sns.histplot(data=?, bins=?, kde=?, color=?)
sns.histplot(data=?, x= ?, hue=?, bins=?, kde=?, color=?)
★ kde : 커널 밀도 추정 곡선 - 데이터의 분포를 부드러운 곡선으로 표현, 데이터가 어느 구간에 집중되어 있는지 부드럽게 표현, 밀도 잘 이해하도록 도와줌.
sns.histplot(data=data.video_duration_sec, kde=True)
★ figure 정식으로 figure 그리고 시작하기
★ title 붙이기
★ bins 개수 조절하기
plt.figure(figsize=(10,5))
plt.title("video_druation_sec")
sns.histplot(data=data.video_duration_sec, kde=True, bins=20)
plt.show()
★ multiple : 시각적 표현방식 (겹쳐질지 , 나란히 표시될지)
- layer 겹쳐서 (기본값)
- stack 쌓여 (누적)
- fill 백분율로 쌓여
- doge 나란히
< multiple='layer' >
layer 겹쳐서 (기본값)
plt.figure(figsize=(10,5))
sns.histplot(data=data, x='claim_status', hue='verified_status'
, multiple='layer')
plt.show()
< multiple='stack' >
stack 쌓여 (누적)
plt.figure(figsize=(10,5))
sns.histplot(data=data, x='claim_status', hue='verified_status'
, multiple='stack')
plt.show()
< multiple='fill' >
fill 백분율로 쌓여
sns.histplot(data=data, x='claim_status', hue='verified_status'
, multiple='fill')
< multiple='dodge' >
doge 나란히
plt.figure(figsize=(10,5))
sns.histplot(data=data, x='claim_status', hue='verified_status'
, multiple='dodge')
plt.show()
★ shrink : 너비를 줄임 (막대나 kde 곡선이 겹칠 때 시각적으로 구분하기 쉽게 만들어줌)
- 기본값 shrink=1
- 값이 1보다 작을수록 kde 곡선의 너비가 더 좁아짐
- 0.8이면 막대의 너비가 80%로 축소
sns.histplot(data=data, x='claim_status', hue='verified_status'
, multiple = 'dodge'
, shrink = 0.8 )
< laye 겹침 (왼) / dodge 나란희 (오) >
★ hue : 구분
★ hue_order = [ 'a', 'b', 'c'] :순서
★ palette = {key: value, key:value } 색깔
red, green, blue, orange, purple, brown, pink, gray, olive, cyan
sns.histplot(data=data, x='claim_status',
hue='author_ban_status', hue_order = ['active', 'under review', 'banned'],
palette={'active':'green', 'under review': 'yellow', 'banned':'red'},
multiple='dodge', shrink=0.9)
plt.title('Claime status by author ban status- counts')
palette={'active':'olive', 'under review': 'orange', 'banned':'cyan'}
★ palette 테마로 설정 = deep, muted, bright, pastel, dark
sns.histplot(data=data, x='claim_status',
hue='author_ban_status', hue_order = ['active', 'under review', 'banned'],
palette = 'pastel',
multiple='dodge', shrink=0.9)
plt.title('pastel')
plt.show()
2) plt
data.hist()
data.video_duration_sec.hist()
3. boxplot 박스플랏
sns.boxplot(data=data)
sns.boxplot(x=?, data=data)
sns.boxplot(y=?, data=data)
sns.boxplot(x=?, y=?, data=data)
sns.boxplot(x=?, y=?, hue=?, data=data)
sns.boxplot(data.video_duration_sec)
plt.figure(figsize=(5,1))
plt.title('video_duration_sec')
sns.boxplot(data.video_duration_sec)
plt.show()
plt.figure(figsize=(5,1))
plt.title('video_duration_sec')
sns.boxplot(x= data.video_duration_sec)
plt.show()
plt.figure(figsize=(5,1))
plt.title('video_duration_sec')
sns.boxplot(y= data.video_duration_sec)
plt.show()
plt.figure(figsize=(10,5))
plt.title('video_duration_sec')
sns.boxplot(x= 'claim_status', y='video_duration_sec', data=data)
plt.show()
plt.figure(figsize=(10,5))
plt.title('video_duration_sec')
sns.boxplot(x= 'claim_status', y='video_duration_sec', hue='author_ban_status', data=data)
plt.show()
plt.xticks(fontsize=?)
plt.yticks(fontsize=?)
plt.xticks(fontsize=12)
4. scatterplot 산점도
sns.scatterplot(x=?, y=?, data=?, hue=?, s=?, alpha=?)
★ s: 크기(marker size)
★ alpha:투명도
sns.scatterplot(data=data, x='video_view_count', y='video_like_count', hue='claim_status')
sns.scatterplot(data=data, x='video_view_count', y='video_like_count', hue='claim_status', s= 20, alpha=0.5)
5. heatmap
상관관계 그래프를 히트맵으로 표현한 경우 많음.
sns.heatmap()
sns.heatmap(data_heatmap.corr(numeric_only = True))
★ annot= ? 주석
★ cmap =? 색상
cmap = 'crest'
sns.heatmap(
data_heatmap.corr(numeric_only = True),
annot=True, #주석
cmap="crest"
)
plt.title("heatmap")
plt.show()
cmap='viridis'
cmap= 'coolwarm'
데이터 시각화 파이썬 데이터분석
'파이썬 > 판다스' 카테고리의 다른 글
pandas 배우기 5편 모델 : 훈련, GridSearchCV, 하이퍼파라미터, 평가 : logisticRegression, RandomForest, XGBClassifier (2) | 2024.11.09 |
---|---|
pandas 배우기 4편 데이터 전처리 : upsampling(업샘플링), outlier(이상치) , 상관관계, 차원변환 (0) | 2024.11.08 |
pandas 배우기 2편 데이터전처리 :빅분기 ADP 데이터분석 요약 (0) | 2024.10.11 |
pandas 배우기 1편 EDA : 빅분기 ADP 데이터분석 시험 요약 (0) | 2024.10.11 |
판다스 컬럼 항목 일괄 변경, 특정 컬럼 기준 정렬, map 매핑 (0) | 2024.02.15 |