엘리스-데이터분석(5)

Matplotlib

모듈 설치

----console-----
pip install matplotlib

import matplotlib.pyplot as plt

그래프 그리기

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("y=x")
ax.set_xlabel('x')
ax.set_ylabel('y')

fig.savefig("first_plot.png")

plot과 legend 속성

plot의 LineStyle에는 '-','--','-.',':'가 있고,marker에는 '.','o','s','^'등이 있다.
legend의 shadow는 그림자,fancybox는 둥근모서리,borderpad는 크기를 의미한다.

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=3
)

fig.savefig("plot.png")

scatter

scatter은 점하나하나의 색깔,크기들을 조절할 수 있다.

fig, ax = plt.subplots()
x = np.arange(10)
ax.plot(
    x, x**2, "o",
    markersize=15,
    markerfacecolor='white',
    markeredgecolor="blue"
)


fig.savefig("plot.png")

bar와 histogram

bar는 각 bar형태로 나타나고,histogram은 주어진 데이터들의 빈도수들을 나타낸다.

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)
fig.savefig("plot.png")

Pandas로 그래프 그리기

Pandas의 Series타입도 plot에 넣을 수 있다.

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")

좋은 웹페이지 즐겨찾기