Matplotlib with Pandas

namung·2021년 11월 25일
0

NIPA AI 온라인 교육

목록 보기
19/19
post-thumbnail

Matplotlib with Pandas

시리즈 데이터를 Line plot 그려보자.

df = pd.read_csv("./president_heights.csv") # csv 파일을 불러옴
fig, ax = plt.subplots()
ax.plot(df["order"], df["height(cm)"], label="height") # ax.plot(x,y,조건)
ax.set_xlabel("order") # 라벨설정
ax.set_ylabel("height(cm)")

아래는 포켓몬스터의 데이터프레임이다.

불 포켓몬과 물 포켓몬의 방어력을 비교해서 시각화해보자.

df = pd.read_csv("./data/pokemon.csv") # csv 파일 불러옴.
fire = df[(df['Type 1']=='Fire') | ((df['Type 2'])=="Fire")] # df의 type 1이 fire인가 아니면 df의 type 2가 fire인가 -> 둘 중 하나라도 fire 값이 들어있음 fire라고 변수에 정의.
water = df[(df['Type 1']=='Water') | ((df['Type 2'])=="Water")]
fig, ax = plt.subplots()
ax.scatter(fire['Attack'], fire['Defense’], color='R', label='Fire', marker="*", s=50) # ax.scatter(x축, y축, color, label, maker, size)
ax.scatter(water['Attack'], water['Defense’], color='B', label="Water", s=25)
ax.set_xlabel("Attack")
ax.set_ylabel("Defense")
ax.legend(loc="upper right")

[실습 4] Matplotlib with Pandas

문제

포켓몬에 대한 데이터가 담긴 csv 파일을 불러와서 공격 타입에 따라 다른 색상을 띠는 산점도 그래프를 그리고 라벨을 한번 붙여보도록 합시다.

공격 능력치와 수비 능력치가 x와 y축으로 주어지고, 물 타입 포켓몬은 파란색, 불 타입 포켓몬은 빨간색으로 표현하도록 합니다.

  1. pokemon.csv 파일을 읽어와 df변수에 데이터프레임으로 저장해보세요.

  2. 공격 타입에 Fire 속성이 존재하는 데이터들만 추출하여 fire 변수에 저장해보세요.

  3. 공격 타입에 Water 속성이 존재하는 데이터들만 추출하여 water 변수에 저장해보세요.

  4. 아래 표를 참고하여 추출한 데이터를 하나의 산점도 그래프로 함께 그리는 코드를 완성해보세요.

속성firewater
x축공격능력치공격능력치
y축방어능력치방어능력치
색상빨강파랑
라벨FireWater
마커*.
크기5025
from elice_utils import EliceUtils
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

elice_utils = EliceUtils()

# 아래 경로에서 csv파일을 읽어서 df 변수에 저장해보세요.
# 경로: "./data/pokemon.csv"
df = None

# 공격 타입 Type 1, Type 2 중에 Fire 속성이 존재하는 데이터들만 추출해보세요.
fire = df
# 공격 타입 Type 1, Type 2 중에 Water 속성이 존재하는 데이터들만 추출해보세요.
water = df

fig, ax = plt.subplots()
# 왼쪽 표를 참고하여 아래 코드를 완성해보세요.
ax.scatter(fire['Attack'], fire['Defense'],
    marker='*', color=None, label=None, s=None)
ax.scatter(water['Attack'], water['Defense'],
    marker='.', color=None, label=None, s=None)

ax.set_xlabel("Attack")
ax.set_ylabel("Defense")
ax.legend(loc="upper right")

# elice에서 그래프 확인하기
fig.savefig("plot.png")
elice_utils.send_image("plot.png")

code

# 아래 경로에서 csv파일을 읽어서 df 변수에 저장해보세요.
# 경로: "./data/pokemon.csv"
df = pd.read_csv("./data/pokemon.csv")

# 공격 타입 Type 1, Type 2 중에 Fire 속성이 존재하는 데이터들만 추출해보세요.
fire = df[(df['Type 1'] == 'Fire') | (df['Type 2'] == 'Fire')]
# 공격 타입 Type 1, Type 2 중에 Water 속성이 존재하는 데이터들만 추출해보세요.
water = df[(df['Type 1'] == 'Water') |(df['Type 2'] == 'Water')]

fig, ax = plt.subplots()
# 왼쪽 표를 참고하여 아래 코드를 완성해보세요.
ax.scatter(fire['Attack'], fire['Defense'],
    marker='*', color='R', label='Fire', s=50)
ax.scatter(water['Attack'], water['Defense'],
    marker='.', color='B', label='Water', s=25)

실행 결과

profile
비전공자의 개발자 도전기 | 공부한 것을 기록합니다.

0개의 댓글