1.  산점도

🌻  데이터를 x축과 y축에 점으로 표현한 그래프
🌻  나이와 소득처럼 연속값으로 된 두 변수의 관계를 표현할 때 사용

 

1) 데이터 준비

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

mpg = pd.read_csv('../input/mpg.csv')
mpg.head()
'''
  manufacturer model  displ  year  cyl       trans drv  cty  hwy fl category
0         audi    a4    1.8  1999    4    auto(l5)   f   18   29  p  compact
1         audi    a4    1.8  1999    4  manual(m5)   f   21   29  p  compact
2         audi    a4    2.0  2008    4  manual(m6)   f   20   31  p  compact
3         audi    a4    2.0  2008    4    auto(av)   f   21   30  p  compact
4         audi    a4    2.8  1999    6    auto(l5)   f   16   26  p  compact
'''

 

📍 mpg.csv : '구동 방식별 고속도로 연비 평균'
📍 displ(배기량)
📍 hwy(고속도로 연비)
📍 drv(구동방식)


 

2) 그래프 생성

 

🌻  sns.scatterplot() : 산점도 만들때 사용
🌻  data : 그래프를 그리는 데 사용할 데이터 프레임을 입력
🌻  x, y : x축과 y축에 사용할 변수(데이터 프레임의 열)를  문자 형태로 입력

# x축은 displ, y축은 hwy를 나타낸 산점도 만들기
# mpg 데이터의 displ(배기량) 변수를 x축에, hwy(고속도로 연비) 변수를 y축에 놓음
sns.scatterplot(data=mpg, x='displ', y='hwy')
plt.show()

출력 결과


 

2. 추가 속성 적용

1) 축 범위 설정

 

🌻  축은 기본적으로 최소값에서 최대값까지 모든 범위의 데이터를 표현하도록 설정

🌻  데이터 전체가 아니라 일부만 표현하고 싶을 때는 축 범위를 설정
       ⚡️  sns.set() : 범위를 설정하는데 사용
       ⚡️  xlim, ylim을 이용해 설정

# xlim을 이용해 x축 범위 3~6으로 제한
sns.scatterplot(data=mpg, x='displ', y='hwy').set(xlim=(3, 6))
plt.show()

출력 결과


 

2) 종류별 표식 색깔 변경

 

🌻  hue='변수명'를 이용하면 표식 marker의 색깔을 종류별로 다르게 표현할 수 있음

# drv별로 표식 색깔 다르게 표현
sns.scatterplot(data=mpg, x='displ', y='hwy', hue='drv')
plt.show()

출력 결과


 

3) 그래프 활용

 

📌  Runtime Configuration Parameters = rcParams

       ▶️ 그래프 설정 변경할 때 사용

# 그래프 설정 바꾸기
plt.rcParams.update({'figure.dpi': '150'})  # 해상도, 기본값 72
plt.rcParams.update({'figure.figsize': [8,6]})  # 그림 크기, 기본값 [6,4]
plt.rcParams.update({'font.size': '15'})  # 글자 크기, 기본값 10
plt.rcParams.update({'font.family': 'AppleGothic'})  # 폰트, 기본값 sans-serif

# 여러 요소를 한 번에 설정하려면 {}에 설정값을 나열
plt.rcParams.update({'figure.dpi': '150',
                     'figure.figsize': [8,6],
                     'font.size': '15',
                     'font.family': 'AppleGothic'})

# 모든 설정 되돌리기
# 같은 페이지내에서 변경된 설정을 되돌림
# plt.rcParams.update(plt.rcParamsDefault)

sns.scatterplot(data=mpg, x='displ', y='hwy')
plt.show()

출력 결과

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]


 

1.  산점도 그래프

plt.scatter(x,y)

 

👩🏻‍💻  산점도 (Scatter plot)는 두 변수의 상관 관계를 직교 좌표계의 평면에 점으로 표현하는 그래프

👩🏻‍💻  서로 다른 두 연속성 변수 사이의 관계를 나타내며 연속성 변수의 상관성을 확인할 때 산점도 그래프를 사용
👩🏻‍💻  예를 들어 나이와 소득에 대한 상호 관련성 파악 등에 유용하게 사용되는데, 두 변수 간의 상관관계를 개략적으로 파악할 수 있기 때문

👩🏻‍💻  산점도에 표시되는 각 점들은 자료의 관측값을 의미하고, 각 점의 위치는 관측값이 가지는 x축, y축 변수의 값으로 결정

 

    📌  공공데이터포털에서 다운로드한 2020년 건강검진 일부 데이터 health_screenings_2020.xlsx를 이용하여 산점도 그래프를 표현

import pandas as pd
import matplotlib.pyplot as plt

# 1) 데이터 읽기
data = pd.read_excel('../input/health_screenings_2020.xlsx')
data.head()

출력 결과

height_data = df1['height']  # 키 데이터만 가져와 height_data에 저장
weight_data = df1['weight']  # 몸무게 데이터만 가져와 weight_data에 저장
height_data.head()
'''
0    175
1    150
2    155
3    165
4    160
Name: height, dtype: int64
'''
plt.figure(figsize=(10, 4))  # 그래프 크기를 지정
plt.scatter(height_data, weight_data)  # x축 데이터에 height_data, y축 데이터에 weight_data 지정
plt.title('2020 Health Screenings Scatter Graph')
plt.xlabel('height')
plt.ylabel('weight')
plt.show()

출력 결과

 


 

2) 그룹 산점도 그래프

 

✏️  누적 산점도 그래프를 그리는 것은 기존 산점도 그래프 위에 산점도 그래프를 하나 더 그리는 방식

# HDL, LDL, cholesterol 데이터를 가져와 각각의 변수에 저장.
HDL_data = df1['HDL']
LDL_data = df1['LDL']
cholesterol_data = df1['cholesterol']

plt.figure(figsize=(10, 6))  # 그래프 크기 지정

# scatter()에 x축 데이터와 y축 데이터를 지정하고 점 색상과 점 테두리 색상을 지정.
plt.scatter(cholesterol_data, LDL_data, color='r', edgecolor='w', label='Cholesterol*LDL')
plt.scatter(HDL_data, cholesterol_data, color='g', edgecolor='w', label='HDL*Cholesterol')
plt.scatter(HDL_data, LDL_data, color='b', edgecolor='w', label='HDL*LDL')

plt.title('2020 Health Screenings Group Scatter Graph')
# xlim(), ylim()으로 x축 및 y축의 최솟값과 최댓값을 지정
plt.xlim(-50, 500)
plt.ylim(-50, 500)
plt.legend()
plt.show()

출력 결과

 

 

 

 

[ 내용 참고 : IT 학원 강의 및 위키독스 ]

+ Recent posts