고정 x 축에 대해 각각 line1 및 line2라는 두 개의 numpy 배열을 플로팅하고 있습니다. 하나의 배열은 세미로지를 사용하여 로그 플롯 에 플로팅하고 다른 배열은 동일한 x 축의 기본 선형 플롯에 플로팅합니다.
두 y 축의 크기 조정 형식은 괜찮은 것 같습니다. 그러나 오른쪽 선형 플롯 (line2)에 대한 y 축 눈금 간격과 배율은 로그 (좁은 간격 눈금 포함)로 보이며 변경할 방법을 찾을 수 없습니다.
아래 플롯의 오른쪽 y 축을 선형으로 변경하는 방법이 있습니까?
내 코드는 다음과 같습니다.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0.01, 10.0, 0.01)
y = np.exp(x)
y2 = np.sin(2*np.pi*x)
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
line1 = ax1.semilogy(x,y)
ax2 = fig1.add_subplot(111, sharex=ax1, frameon=False)
line2 = ax2.plot(x,y2,"r")
#MATPLOTLIB BUG? THE SECOND Y AXES HAS A LOG SCALE AND THE TICK LABELS CAN'T BE CHANGED
ax2.set_yscale('linear')
ax2.yaxis.tick_right()
plt.show()
다시 ax2 = ax1.twinx()
대신 사용 add_subplot
하십시오. 그러면 새 축의 y 눈금이 이전 축의 y 눈금과 분리됩니다. 문서에서 :
twinx()
x 축을 공유하지만 y 축은 독립적 인 플롯을 생성하기 위해 축 쌍을 생성합니다. self의 y 축은 왼쪽에 눈금이 있고 반환 된 축은 오른쪽에 눈금이 있습니다.
당신은 또한 다음을 설정할 필요가 없습니다 yscale
에 linear
그 자동으로 수행 될 때, 오른쪽으로 틱, 또는 이동twinx
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0.01, 10.0, 0.01)
y = np.exp(x)
y2 = np.sin(2*np.pi*x)
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
line1 = ax1.semilogy(x,y)
ax2 = ax1.twinx() # <-- Note the change to twinx here
line2 = ax2.plot(x,y2,"r")
plt.show()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다