본문 바로가기
파이썬

파이썬 Matplotlib를 사용하여 두 개의 y 축 스케일에 대한 격자 선을 어떻게 정렬합니까?

by º기록 2020. 12. 5.
반응형

저는 y 축에 다른 단위로 두 개의 데이터 세트를 플로팅하고 있습니다. 틱과 격자 선을 양쪽 y 축에 정렬하는 방법이 있습니까?

첫 번째 이미지는 내가 얻는 것을 보여주고 두 번째 이미지는 내가 얻고 싶은 것을 보여줍니다.

이것은 내가 플롯하는 데 사용하는 코드입니다.

import seaborn as sns
import numpy as np
import pandas as pd

np.random.seed(0)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(pd.Series(np.random.uniform(0, 1, size=10)))
ax2 = ax1.twinx()
ax2.plot(pd.Series(np.random.uniform(10, 20, size=10)), color='r')

원치 않는 동작의 예

원하는 행동의 예

 

해결 방법

 

이것이 가장 예쁜 방법인지 확실하지 않지만 한 줄로 해결합니다.

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd

np.random.seed(0)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(pd.Series(np.random.uniform(0, 1, size=10)))
ax2 = ax1.twinx()
ax2.plot(pd.Series(np.random.uniform(10, 20, size=10)), color='r')

# ADD THIS LINE
ax2.set_yticks(np.linspace(ax2.get_yticks()[0], ax2.get_yticks()[-1], len(ax1.get_yticks())))

plt.show()

 

참조 페이지 https://stackoverflow.com/questions/26752464

 

 

반응형

댓글