반응형
질문
나는 무늬나 숫자가 없는 축(나는 matplotlib 용어가 아닌 전통적인 의미의 축을 사용한다!)으로 그림을 그리려고 한다. 내가 마주친 문제는 matplotlib이 x(y)ticklabels을 값 N을 빼고 축 끝에 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()
를 사용하여 축에 레이블을 추가할 수 있습니다.
반응형
댓글