matplotlib 그래프들
○ Line Plot
fig, ax = plt.subplots()
x = np.arange(15)
y = x**2
ax.plot(x,y, linestype = ":",
marker = "*",
color = "r")
linestype : "-", "--",
line style
x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, linestyle="-" # solid
ax.plot(x, x+2, linestyle="--" # dashed
ax.plot(x, x+4, linestyle="-." # dashdot
ax.plot(x, x+6, linestyle=":" #dotted
color
x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, color="r")
ax.plot(x, x+2, color="green")
ax.plot(x, x+4, color='0.8') # 0~1 값으로 넣으면 gray scale로 표현(회색)
ax.plot(x, x+6, color="#524FA1") # RGB에 대한 16진수도 표현가능
marker
x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, marker=".")
ax.plot(x, x+2, marker="o")
ax.plot(x, x+4, marker='v')
ax.plot(x, x+6, marker="s")
ax.plot(x, x+8, marker="*")
○ 그래프 옵션
축 경계 조정하기
x = np.linspace(0, 10, 1000)
fig, ax = plt.subplots()
ax.plot(x, np.sin(x))
ax.set_xlim(-2,12)
ax.set_ylim(-1.5, 1.5)
범례
fig, ax = plt.subplots()
ax.plot(x,x,label='y=x')
ax.plot(x,x**2, label='y=x^2')
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.legend(
loc='upper right'
shadow=True, # 박스 그림자
fancybox=True, # 모서리 라운드지게
borderpad=2) # 박스 크기
[실습1]
from elice_utils import EliceUtils
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
elice_utils = EliceUtils()
#이미 입력되어 있는 코드의 다양한 속성값들을 변경해 봅시다.
x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(
x, x, label='y=x',
marker='o',
color='blue',
linestyle=':'
)
ax.plot(
x, x**2, label='y=x^2',
marker='^',
color='red',
linestyle='--'
)
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.legend(
loc='upper left',
shadow=True,
fancybox=True,
borderpad=2
)
fig.savefig("plot.png")
elice_utils.send_image("plot.png")
○ Scatter
fig, ax = plt.subplot()
x = np.arange(10)
ax.plot(
x, x**2, "o",
markersize=15,
markerfacecolor='white'
markeredgecolor="blue")
fig,ax = plt.subplot()
x = np.random.randn(50)
y = np.random.randn(50
colors = np.random.randint(0,100,50)
sizes = 500 * np.pi * np.random.rand(50)**2
ax.scatter(x,y,c=colors, s=sizes,alpha=0.3) # alpha는 투명도
○ bar plot
x=np.arange(10)
fig,ax = plt.subplots(figsize=(12,4))
ax.bar(x,x*2)
bar plot을 누적해서
x = np.random.rand(3)
y = np.random.rand(3)
z = np.random.rand(3)
data = [x, y, z]
fig, ax = plt.subplots()
x_ax = np.arange(3)
for i in x_ax:
ax.bar(x_ax, data[i],
bottom=np.sum(data[:i], axis=0))
ax.set_xticks(x_ax)
ax.set_xticklabels(["A","B","C"])
○ Histogram
fig,ax = plt.subplots()
data = np.random.randn(1000)
ax.hist(data, bins=50)
[실습] bar & histogram
elice_utils = EliceUtils()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fname='./NanumBarunGothic.ttf'
font = fm.FontProperties(fname = fname).get_name()
plt.rcParams["font.family"] = font
x = np.array(["축구", "야구", "농구", "배드민턴", "탁구"])
y = np.array([18, 7, 12, 10, 8])
z = np.random.randn(1000)
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
# Bar 그래프
axes[0].bar(x, y)
# 히스토그램
axes[1].hist(z, bins = 50)
○ Matplotlib with pandas
df = pd.read_csv("./president_heights.csv")
fig, ax = plt.subplots()
ax.plot(df["order"], df["height(cm)"], label="height")
ax.set_xlabel("order")
ax.set_ylabel("height(cm)")
ax.legend()
fire = df[(df['Type 1']=='Fire')| df['Type2']=='Fire')]
water = df[(df['Type1']=='Water') | (df['Type2']=='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")
[실습]
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")
[실습] 토끼와 거북이 경주 결과 시각화
from elice_utils import EliceUtils
from matplotlib import pyplot as plt
import pandas as pd
plt.rcParams["font.family"] = 'NanumBarunGothic'
elice_utils = EliceUtils()
# 아래 경로에서 csv파일을 읽어서 시각화 해보세요
# 경로: "./data/the_hare_and_the_tortoise.csv"
df = pd.read_csv("./data/the_hare_and_the_tortoise.csv")
df.set_index("시간",inplace=True)
print(df)
fig, ax = plt.subplots()
ax.plot(df["토끼"],label='토끼')
ax.plot(df["거북이"], label='거북이')
ax.legend()
# 그래프를 확인하려면 아래 두 줄의 주석을 해제한 후 코드를 실행하세요.
fig.savefig("plot.png")
elice_utils.send_image("plot.png")
○ Matplotlib :파이썬에서 데이터를 그래프나 차트로 시각화할 수 있는 라이브러리
import matplotlib as plt
x = [1,2,3,4,5]
y = [1,2,3,4,5]
plt.plot(x,y)
plt.title("First Plot")
plt.xlabel("x")
plt.ylabel("y")
그래프 그려보기2
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [1,2,3,4,5]
fig, ax = plt.subplots()
ax.plot(x,y)
ax.set_title("First Plot")
ax.set_xlabel("x")
ax.set_ylabel("y")
fig.set_dpi(300)
fig.savefig("first_plot.png")
○ 여러개 그래프 그리기
x = np.linspace(0, np.pi*4, 100)
fig.axes = plt.subplot(2,1) * 한 도화지에 세로축으로 2개의 그래프
axes[0].plot(x, np.sin(x))
axes[1].plot(x, np.cos(x))
'IT인터넷 > Python' 카테고리의 다른 글
[디지털 문해력] SQL로 데이터 다루기(210919) (0) | 2021.10.03 |
---|---|
[디지털 문해력]Python으로 시작하는 데이터 분석_Pandas 심화(211002) (0) | 2021.10.02 |
[디지털 문해력]Python으로 시작하는 데이터 분석_Numpy 사용해보기(210927) (0) | 2021.10.02 |
[디지털 문해력]Python으로 시작하는 데이터 분석_Pandas 기본 알아보기(210930) (0) | 2021.10.02 |
[디지털 문해력]Python 파이썬 배우기 2일차(210915) (0) | 2021.09.19 |
댓글