반응형
matplotlib는 x 축을 공유하지만 둘 다에 대해 x 축 눈금 레이블을 표시하지 않습니다.
저는 python + matplotlib를 사용하고 있고 축을 공유하는 두 개의 플롯이 있습니다. graph1.set_xticklabels([])
축을 공유하면서 설정하려고하면 공유되기 때문에 효과가 없습니다. 축을 공유하고 한 플롯의 x 축을 숨길 수있는 방법이 있습니까?
이것은 공유 축을 사용할 때 흔히 발생하는 문제입니다.
다행히도 간단한 수정이 있습니다. plt.setp(ax.get_xticklabels(), visible=False)
레이블을 하나의 축에서만 보이지 않게 만드는 것입니다.
이것은 [label.set_visible(False) for label in ax.get_xticklabels()]
가치가 무엇이든간에. setp
개별 객체뿐만 아니라 matplotlib 객체의 반복 가능한 객체에서 자동으로 작동합니다.
예로서:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax1.plot(range(10), 'b-')
ax2 = fig.add_subplot(2,1,2, sharex=ax1)
ax2.plot(range(10), 'r-')
plt.setp(ax1.get_xticklabels(), visible=False)
plt.show()
matplotlib-users 의 스레드 당 다음을 사용할 수 있습니다.
import matplotlib.pyplot as plt
for ax in plt.gcf().axes:
try:
ax.label_outer()
except:
pass
Axes.tick_params () 사용할 수 있습니다 .
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212, sharex=ax1)
ax1.tick_params(labelbottom=False)
서브 플롯을 생성하는 동안 다음과 plt.subplots
같이 축을 공유 할 수 있습니다.
fig, axes = plt.subplots(nrows=2, sharex=True)
그러면 내부 축에 대한 눈금 레이블이 자동으로 꺼집니다.
완전한 예 :
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, sharex=True)
axes[0].plot([1,2,3])
axes[1].plot([3,2,1])
plt.show()
불행히도 esmit의 답변 (제 생각에 가장 좋은 해결책 인 esmit 감사합니다)에 대해 언급 할 수 없으므로 새로운 답변으로 의견을 작성해야합니다. 그의 솔루션을 간단한 함수에 넣었습니다.
def remove_inner_ticklabels(fig):
for ax in fig.axes:
try:
ax.label_outer()
except:
pass
전에 전화 할 수 있습니다 plt.show()
. Joe Kington의 답변은 어떤 이유로 저에게 효과가 없었습니다.
반응형
'Programing' 카테고리의 다른 글
MVC 4에서 이미지 업로드 / 표시 (0) | 2020.10.12 |
---|---|
프로그래밍 방식으로 그리드 행 및 열 위치를 설정하는 방법 (0) | 2020.10.12 |
URL 개체에서 파일 개체를 만드는 방법 (0) | 2020.10.12 |
지도에 키 또는 값이 있는지 확인하는 방법은 무엇입니까? (0) | 2020.10.12 |
Git이 구성 후에도 커밋을 허용하지 않는 이유는 무엇입니까? (0) | 2020.10.12 |