pbj0812의 코딩 일기

[PYTHON] subplots 를 이용한 y축이 두 개인 그래프(plotyy) 그리기 본문

ComputerLanguage_Program/PYTHON

[PYTHON] subplots 를 이용한 y축이 두 개인 그래프(plotyy) 그리기

pbj0812 2021. 6. 13. 00:51

0. 목표

 - subplots 를 이용한 y 축이 두 개인 그래프(plotyy) 그리기

1. 실습

 1) matplotlib 으로 그리기

  (1) library 호출

import matplotlib.pyplot as plt

  (2) 데이터 생성

x1 = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
x2 = [1, 2, 3, 4, 5]
y2 = [1, 10, 50, 100, 200]

  (3) subplots 생성

fig, axe1 = plt.subplots()

  (4) ax 복사

axe2 = axe1.twinx()

  (5) 그래프 그리기

c1 = axe1.plot(x1, y1, color = 'r')
c2 = axe2.plot(x2, y2, color = 'b')

axe1.set_ylabel('a')
axe2.set_ylabel('b')

  (6) 범례 제작

c = c1 + c2
axe1.legend(c, ['a', 'b'])

  (7) 결과

 2) seaborn 으로 그리기

  (1) library 호출

import seaborn as sns
import pandas as pd

  (2) 데이터 프레임 생성

data = {'x1' : x1, 'x2' : x2, 'y1' : y1, 'y2' : y2}
df = pd.DataFrame(data)

  (3) subplots 생성

fig, axe1 = plt.subplots()

  (4) ax 복사

axe2 = axe1.twinx()

  (5) 그래프 그리기

c1 = sns.lineplot(ax = axe1, data = df, x = 'x1', y = 'y1', color = 'red')
c2 = sns.lineplot(ax = axe2, data = df, x = 'x2', y = 'y2', color = 'blue')

axe1.legend(['a', 'b'])

axe1.set_ylabel('a')
axe2.set_ylabel('b')

  (6) 결과

fig

2. 참고

 - Subplotting with matplotlib and seaborn

Comments