15. 산점도 그래프
두 변수의 상관관계
In [7]:
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'AppleGothic'
matplotlib.rcParams['font.size'] = 15 #글자크기
matplotlib.rcParams['axes.unicode_minus'] = False #한글폰트 사용시 마이너스 글자 깨짐 해결
In [8]:
import pandas as pd
df= pd.read_excel('../Pandas/score.xlsx')
df
Out[8]:
지원번호이름학교키국어영어수학과학사회SW특기01234567
1번 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
2번 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
3번 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
4번 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
5번 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
6번 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
7번 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
8번 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
In [9]:
df['학년'] = [3,3,2,1,1,3,2,2]
df
Out[9]:
지원번호이름학교키국어영어수학과학사회SW특기학년01234567
1번 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python | 3 |
2번 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java | 3 |
3번 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript | 2 |
4번 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN | 1 |
5번 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN | 1 |
6번 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C | 3 |
7번 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON | 2 |
8번 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# | 2 |
In [10]:
plt.scatter(df['영어'],df['수학'])
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Out[10]:
Text(0, 0.5, '수학 점수')

In [12]:
import numpy as np
sizes= np.random.rand(8) *1000
sizes
Out[12]:
array([455.28254021, 235.57171405, 407.02327708, 928.37713086,
350.36283883, 983.61286769, 643.49907203, 584.2168489 ])
In [15]:
plt.scatter(df['영어'],df['수학'], s=sizes)
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Out[15]:
Text(0, 0.5, '수학 점수')

In [16]:
sizes = df['학년'] *500
plt.scatter(df['영어'],df['수학'], s=sizes)
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Out[16]:
Text(0, 0.5, '수학 점수')

In [20]:
sizes = df['학년'] *500
plt.scatter(df['영어'], df['수학'], s=sizes, c = df['학년'], cmap = 'viridis', alpha= 0.3) # viridis는 학년 별로 나뉘어서 구별 후 적어줌, alpha = opacity
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
Out[20]:
Text(0, 0.5, '수학 점수')

In [29]:
plt.figure(figsize=(5,5))
plt.scatter(df['영어'], df['수학'], s=sizes, c = df['학년'], cmap = 'viridis', alpha= 0.3) # viridis는 학년 별로 나뉘어서 구별 후 적어줌, alpha = opacity
plt.xlabel('영어 점수')
plt.ylabel('수학 점수')
plt.colorbar(ticks = [1,2,3], label = '학년', shrink = 0.5, orientation='horizontal')
Out[29]:
<matplotlib.colorbar.Colorbar at 0x7feef5456c70>

'Programming > python' 카테고리의 다른 글
[웹 스크래핑] (0) | 2023.04.01 |
---|---|
[matplotlib] 여러 그래프 (0) | 2023.03.27 |
[matplotlib] 원 그래프 (심화) (0) | 2023.03.27 |
[matplotlib] 원그래프 (심화) (0) | 2023.03.27 |
[matplotlib] 원 그래프 (기본) (0) | 2023.03.27 |