1 분 소요

15. 산점도 그래프

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # 글자 폰트
matplotlib.rcParams['font.size'] = 15 # 글자 크기
matplotlib.rcParams['axes.unicode_minus'] = False # 한글 폰트 사용 시, 마이너스 글자가 깨지는 현상을 해결
import pandas as pd

df = pd.read_excel('../Pandas/score.xlsx')
df
지원번호 이름 학교 국어 영어 수학 과학 사회 SW특기
0 1번 채치수 북산고 197 90 85 100 95 85 Python
1 2번 정대만 북산고 184 40 35 50 55 25 Java
2 3번 송태섭 북산고 168 80 75 70 80 75 Javascript
3 4번 서태웅 북산고 187 40 60 70 75 80 NaN
4 5번 강백호 북산고 188 15 20 10 35 10 NaN
5 6번 변덕규 능남고 202 80 100 95 85 80 C
6 7번 황태산 능남고 188 55 65 45 40 35 PYTHON
7 8번 윤대협 능남고 190 100 85 90 95 95 C#
df['학년'] = [3, 3, 2, 1, 1, 3, 2, 2]
df
지원번호 이름 학교 국어 영어 수학 과학 사회 SW특기 학년
0 1번 채치수 북산고 197 90 85 100 95 85 Python 3
1 2번 정대만 북산고 184 40 35 50 55 25 Java 3
2 3번 송태섭 북산고 168 80 75 70 80 75 Javascript 2
3 4번 서태웅 북산고 187 40 60 70 75 80 NaN 1
4 5번 강백호 북산고 188 15 20 10 35 10 NaN 1
5 6번 변덕규 능남고 202 80 100 95 85 80 C 3
6 7번 황태산 능남고 188 55 65 45 40 35 PYTHON 2
7 8번 윤대협 능남고 190 100 85 90 95 95 C# 2
plt.scatter(df['영어'],df['수학'])
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Text(0, 0.5, '수학 점수')

import numpy as np
sizes = np.random.rand(8) * 1000
sizes
array([181.78216747, 745.72325818, 988.94992638, 148.24723426,
       684.31070804, 452.29223234, 133.83073613, 733.2575611 ])
plt.scatter(df['영어'],df['수학'], s=sizes)
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Text(0, 0.5, '수학 점수')

sizes = df['학년'] * 500 # 1학년 = 500, 2학년 = 1000, 3학년 = 1500
plt.scatter(df['영어'],df['수학'], s=sizes)
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Text(0, 0.5, '수학 점수')

plt.scatter(df['영어'],df['수학'], s=sizes, c=df['학년'], cmap='viridis', alpha=0.3) # color, colormap
plt.xlabel('영어 점수') 
plt.ylabel('수학 점수')
Text(0, 0.5, '수학 점수')

plt.figure(figsize=(7,7))
plt.scatter(df['영어'],df['수학'], s=sizes, c=df['학년'], cmap='viridis', alpha=0.3) # color, colormap
plt.xlabel('영어 점수') 
plt.ylabel('수학 점수')
plt.colorbar(ticks=[1, 2, 3], label='학년', shrink=0.5, orientation='horizontal')
<matplotlib.colorbar.Colorbar at 0x27947efbb50>

댓글남기기