반응형
두 개의 서브 플롯이 생성 된 후 x 축을 어떻게 공유합니까?
두 개의 서브 플롯 축을 공유하려고하는데 그림이 생성 된 후 x 축을 공유해야합니다. 예를 들어이 그림을 만듭니다.
import numpy as np
import matplotlib.pyplot as plt
t= np.arange(1000)/100.
x = np.sin(2*np.pi*10*t)
y = np.cos(2*np.pi*10*t)
fig=plt.figure()
ax1 = plt.subplot(211)
plt.plot(t,x)
ax2 = plt.subplot(212)
plt.plot(t,y)
# some code to share both x axis
plt.show()
주석 대신 두 x 축을 공유하는 코드를 삽입합니다. 어떻게 할 수 있을지 전혀 모르겠습니다. 이 몇 가지 속성은 다음 _shared_x_axes
과 _shared_x_axes
내가 그림 축에 검사 할 때 ( fig.get_axes()
)하지만 난 그들을 연결하는 방법을 모르겠어요.
축을 공유하는 일반적인 방법은 생성시 공유 속성을 만드는 것입니다. 어느 한 쪽
fig=plt.figure()
ax1 = plt.subplot(211)
ax2 = plt.subplot(212, sharex = ax1)
또는
fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
따라서 생성 된 축을 공유 할 필요가 없습니다.
그러나 어떤 이유로 든 축을 만든 후 공유 해야하는 경우 (실제로 here 과 같은 일부 하위 그림을 만드는 다른 라이브러리를 사용 하거나 삽입 된 축을 공유하는 것이 이유 일 수 있음) 여전히 해결책이 있습니다.
사용
ax1.get_shared_x_axes().join(ax1, ax2)
두 축 사이에 링크를 생성 ax1
하고 ax2
. 생성시 공유와 달리 축 중 하나에 대해 xticklabels를 수동으로 설정해야합니다 (원하는 경우).
완전한 예 :
import numpy as np
import matplotlib.pyplot as plt
t= np.arange(1000)/100.
x = np.sin(2*np.pi*10*t)
y = np.cos(2*np.pi*10*t)
fig=plt.figure()
ax1 = plt.subplot(211)
ax2 = plt.subplot(212)
ax1.plot(t,x)
ax2.plot(t,y)
ax1.get_shared_x_axes().join(ax1, ax2)
ax1.set_xticklabels([])
# ax2.autoscale() ## call autoscale if needed
plt.show()
참고 URL : https://stackoverflow.com/questions/42973223/how-share-x-axis-of-two-subplots-after-they-are-created
반응형
'code' 카테고리의 다른 글
OS X에서 "dnu"명령을 사용하는 방법은 무엇입니까? (0) | 2020.12.05 |
---|---|
단 형성 제한이란 무엇입니까? (0) | 2020.12.05 |
Android API를 사용하여 Android에서 Wi-Fi 네트워크의 이름을 얻는 방법은 무엇입니까? (0) | 2020.12.05 |
.less 파일에서 Visual Studio 2010 .css Intellisense를 켜는 방법 (0) | 2020.12.05 |
Chrome은 Safari 및 Firefox와 다르게 색상을 렌더링합니다. (0) | 2020.12.05 |