본문 바로가기
파이썬

파이썬 matplotlib 플롯에서 축 텍스트 숨기기

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

축 중 하나에 눈금이나 숫자가없는 그림을 그리려고합니다 (나는 matplotlib 명명법이 아닌 전통적인 의미에서 축을 사용합니다!). 내가 만난 문제는 matplotlib가 값 N을 빼서 x (y) ticklabels를 조정 한 다음 축 끝에 N을 추가하는 것입니다.

이것은 모호 할 수 있지만 다음 단순화 된 예는 문제를 강조하며 '6.18'은 N의 문제가되는 값입니다.

import matplotlib.pyplot as plt
import random
prefix = 6.18

rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')

frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
    xlabel_i.set_visible(False)
    xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
    xlabel_i.set_fontsize(0.0)
    xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
    tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
    tick.set_visible(False)

plt.show()

제가 알고 싶은 세 가지는 다음과 같습니다.

처음에이 동작을 끄는 방법 (대부분의 경우 유용하지만 항상 그런 것은 아닙니다!) matplotlib.axis.XAxis 를 살펴 봤지만 적절한 것을 찾을 수 없습니다

N을 사라지게하려면 어떻게해야하나요 (예 : X.set_visible (False) )

어쨌든 위의 작업을 수행하는 더 좋은 방법이 있습니까? 내 최종 플롯은 그림에서 4x4 서브 플롯이 될 것입니다.

 

해결 방법

 

각 요소를 숨기는 대신 전체 축을 숨길 수 있습니다.

frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)

또는 눈금을 빈 목록으로 설정할 수 있습니다.

frame1.axes.get_xaxis().set_ticks([])
frame1.axes.get_yaxis().set_ticks([])

이 두 번째 옵션에서도 plt.xlabel () plt.ylabel () 을 사용하여 축에 레이블을 추가 할 수 있습니다.

 

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

 

 

반응형

댓글