[Python3] matplotlib에서 꺾은선형 차트로 세로축(y축)을 3개 이상 쓰는 방법

가로축은 같지만 스케일이 다른 데이터를 3개 이상 그리고 싶을 때는 많이 있다고 생각합니다.
이 기사에서는 y축이 세 개의 꺾은선형 차트를 그립니다.

그림에서 말하면 위 그림을 아래와 같이 합니다.



데이터는 이것을 사용합니다.
index   A     B    C
0     2   2000  4000000
1     3   1000  3000000
2     6   700    4200000
3     12  300    3600000
4     5   500    2500000
5     3   1400  4200000
6     5   800    4000000
7     6   300    1800000
8     8   500    4000000

↑index를 가로축으로 하고, A, B, C의 꺾은선 그래프를 쓰면 세로축의 스케일을 바꾸는 편이 좋네요.

그런 이유로 해 봅시다.
다양한 import
import pandas as pd 
import matplotlib as mpl
import matplotlib.pyplot as plt

· 캔버스를 정의합니다.
fig=plt.figure() 
fig.subplots_adjust(bottom=0.2)
fig.subplots_adjust(right=0.85)
fig.subplots_adjust(left=0.15)

・x축은 모두 공통으로 합니다.
ax2, ax3의 x축을 ax1과 공통으로 하는 대충 없습니다.
ax1=fig.add_subplot(1,1,1)
ax2=ax1.twinx()
ax3=ax1.twinx()

· x 축의 이름이나 범례의 이름을 붙입니다.
ax1.set_xlabel('index',fontsize=18)
ax1.set_ylabel('A',fontsize=18 ,color='red')
ax2.set_ylabel('B',fontsize=18 ,color='green')
ax3.set_ylabel('C',fontsize=18 ,color='blue') 

· 이것이 중요합니다. 이것을 붙이면 그림의 오른쪽에 겹치지 않도록 세 번째 축을 쓸 수 있습니다. 두 번째 줄의 1.2를 변경하면 위치를 조정할 수 있습니다.
rspine = ax3.spines['right']
rspine.set_position(('axes', 1.2))

・그래프를 쓰고 끝입니다.
ax1.plot(df['A'],color='red',label="A")
ax2.plot(df['B'],color='green',label="B") 
ax3.plot(df['C'],color='blue',label="C") 

h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
h3, l3 = ax3.get_legend_handles_labels()
ax1.legend(h1 + h2 +h3, l1 + l2 +l3 ,loc='upper right')

위의 데이터를 사용하면 이러한 그림을 만들 수 있습니다.


참고
htps // tp t b. rg / 3.1.1 / ぇ ry / 치 cks_ an d_s 피네 s / s 피네_p ぁ 세멘 t_도. HTML

좋은 웹페이지 즐겨찾기