1. 대통령 키 데이터에 대해 그래프를 그려보자
plot첫번째 인자인 x에 대해서는 order 몇 대대통령인지 y에 대해선 키를 설정.
label= height도 세번째 인자로 추가.
set_xlabel set_ylabel
핵심은 시리즈 데이터값을 x, y로 넣을 수 있다는 것
2. 다음은 포켓몬스터 데이터다. 타입, 이름 등등
3. 불과 물 포켓몬의 공격과 물 의 scatter그래프를 그려 분포를 확인해보고자 한다.
fire = df[ () | () ] masking연산으로 타입이 맞는 애들을 골라온다. 타입 하나가 불이기만 하면 불로본다
물도 마찬가지.
scatter에선 x로 attack를 y로는 defense를 설정한다. fire과 water각각으로 그려야 한다.
from elice_utils import EliceUtils
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
elice_utils = EliceUtils()
df = pd.read_csv("./data/pokemon.csv")
fire = df[
(df['Type 1']=='Fire') | ((df['Type 2'])=="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(water['Attack'], water['Defense'],
color='B', label="Water", s=25)
ax.set_xlabel("Attack")
ax.set_ylabel("Defense")
ax.legend(loc="upper right")
fig.savefig("plot.png")
elice_utils.send_image("plot.png")
[실습] 토끼와 거북이 경주 결과
“나랑 달리기 시합하지 않을래?”
토끼와 거북이가 달리기 시합을 하기로 했어요.
공정한 경쟁을 위해서 1초마다 토끼와 거북이의 위치를 다른 동물이 기록하기로 하고 경주를 했네요.
시간 토끼 거북이
0 0 0 0
1 1 9 3
2 2 20 8
3 3 31 12
4 4 42 16
5 5 57 23
6 6 60 30
7 7 60 33
8 8 60 41
9 9 60 46
10 10 60 57
11 11 60 66
12 12 60 71
13 13 60 79
14 14 60 80
15 15 60 89
16 16 63 93
17 17 71 95
18 18 82 100
19 19 94 100
20 20 100 100
from elice_utils import EliceUtils
from matplotlib import pyplot as plt
import pandas as pd
plt.rcParams["font.family"] = 'NanumBarunGothic'
elice_utils = EliceUtils()
def main():
# 아래 경로에서 csv파일을 읽어서 시각화 해보세요
# 경로: "./data/the_hare_and_the_tortoise.csv"
df = pd.read_csv("./data/the_hare_and_the_tortoise.csv")
fig, ax = plt.subplots()
ax.plot(df["시간"], df["토끼"], label="토끼")
ax.plot(df["시간"], df["거북이"], label="거북이")
ax.legend()
#print(df)
# 그래프를 확인하려면 아래 두 줄의 주석을 해제한 후 코드를 실행하세요.
fig.savefig("plot.png")
elice_utils.send_image("plot.png")
if __name__ == "__main__":
main()
!성공!
강의에선 인덱스를 애초에 시간으로 잡아버림
그렇게 되면 x값을 각자 지정해줄 필요가 없게 된다
[실습] 월드컵 우승국가 시각화
“월드컵 우승국들의 현황은 어떻게 될까?”
역대 월드컵 우승국가들에 대한 정보가 담긴 csv파일이 있습니다. 앞서 배운 그래프들을 활용해서 월드컵 우승 빈도가 가장 높은 국가가 어디인지 시각화를 통해서 알아봅시다.
월드컵 우승국 데이터가 csv파일로 저장되어 있어요. 우리는 csv 파일을 읽어서 월드컵 우승국들의 빈도를 그래프로 시각화해보고자합니다!
월드컵 국가 별 우승 횟수를 딕셔너리로 저장하여 해당 데이터를 출력하고, 딕셔너리 데이터를 입력하여 그래프를 출력해야 합니다.
코드의 빈 칸 ??? 부분을 채워 프로그램을 완성해보세요!
출력 예시{'Uruguay': 2, 'Italy': 4, 'Germany FR': 3, 'Brazil': 5, 'England': 1, 'Argentina': 2, 'France': 1, 'Spain': 1, 'Germany': 1}
Year Country ... MatchesPlayed Attendance
0 1930 Uruguay ... 18 590.549
1 1934 Italy ... 17 363.000
2 1938 France ... 18 375.700
3 1950 Brazil ... 22 1.045.246
4 1954 Switzerland ... 26 768.607
5 1958 Sweden ... 35 819.810
6 1962 Chile ... 32 893.172
7 1966 England ... 32 1.563.135
8 1970 Mexico ... 32 1.603.975
9 1974 Germany ... 38 1.865.753
10 1978 Argentina ... 38 1.545.791
11 1982 Spain ... 52 2.109.723
12 1986 Mexico ... 52 2.394.031
13 1990 Italy ... 52 2.516.215
14 1994 USA ... 52 3.587.538
15 1998 France ... 64 2.785.100
16 2002 Korea/Japan ... 64 2.705.197
17 2006 Germany ... 64 3.359.439
18 2010 South Africa ... 64 3.178.856
19 2014 Brazil ... 64 3.386.810
[20 rows x 10 columns]
Year Country Winner Runners-Up Third Fourth GoalsScored QualifiedTeams MatchesPlayed Attendance
1930 Uruguay Uruguay Argentina USA Yugoslavia 70 13 18 590.549
1934 Italy Italy Czechoslovakia Germany Austria 70 16 17 363
1938 France Italy Hungary Brazil Sweden 84 15 18 375.7
1950 Brazil Uruguay Brazil Sweden Spain 88 13 22 1.045.246
1954 Switzerland Germany FR Hungary Austria Uruguay 140 16 26 768.607
(가로가 길어서 생략됨)
from elice_utils import EliceUtils
from matplotlib import pyplot as plt
import pandas as pd
elice_utils = EliceUtils()
plt.rcParams["font.family"] = 'NanumBarunGothic'
# 아래 경로에서 csv파일을 읽어서 시각화 해보세요
# 경로: "./data/WorldCups.csv"
df = pd.read_csv("./data/WorldCups.csv") # 월드컵 정보를 담는 csv 파일을 읽어옵니다.
# 어떤 자료를 갖는지 직접 확인해보세요!
# print(df)
winners = df["Winner"] # 읽어온 데이터 프레임 중 "우승국"을 의미하는 칼럼을 가져오세요.
# 국가 별 우승 횟수를 나타내는 딕셔너리 입니다.
winner_dict = {}
for i in winners : # 우승국을 반복문으로 읽으며, 해당 국가의 우승 횟수를 1씩 증가시킵니다.
if i in winner_dict :
winner_dict[i] += 1
# i(우승국)이 이미 winner_dict에 있다면, value를 1 증가시킵니다.
else :
winner_dict[i] = 1
# i(우승국)이 winner_dict에 최초로 등장한다면, value를 1로 설정합니다.
print(winner_dict)
X = list(winner_dict.keys()) # X축 변수, 즉 우승국을 나타냅니다.
Y = list(winner_dict.values()) # Y축 변수, 즉 우승 횟수를 나타냅니다.
fig, ax = plt.subplots(figsize=(8, 8))
# ax.plot(X, Y)
ax.bar(X, Y)
ax.set_xlabel("Country")
ax.set_ylabel("Number")
ax.set_xticks(X)
fig.savefig("Winner.png")
elice_utils.send_image("Winner.png")
!성공!
for 문 채우는게 관건이었음
'파이썬 > NIPA 데이터분석 강의' 카테고리의 다른 글
NIPA 온라인선택 데이터 머신러닝 02 데이터 과학자 이해하기 for 비전공자 (0) | 2020.10.04 |
---|---|
NIPA 온라인선택 데이터 머신러닝 01 머신러닝과 과학 이해하기 (0) | 2020.10.04 |
NIPA 데이터분석 첫번째 활용선택 : 06 실력확인테스트 (0) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 05 월드컵 데이터 분석해보기 (1) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 04 Matplotlib 1 - line plot 옵션과 scatter bar hist (0) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 03 Pandas 심화 -b pivot 피리부는사나이 (0) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 03 Pandas 심화 -a apply group (0) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 02 Pandas 기본 알아보기 (0) | 2020.09.29 |