축 중 하나에 눈금이나 숫자가없는 그림을 그리려고합니다 (나는 matplotlib 명명법이 아닌 전통적인 의미로 축을 사용합니다!). 내가 겪은 문제는 matplotlib이 값 N을 빼서 x (y) 틱 레이블을 조정 한 다음 축의 끝에 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)
) -
어쨌든 위의 작업을 수행하는 더 좋은 방법이 있습니까? 내 마지막 줄거리는 그림에서 4×4 서브 플로트가 될 것입니다.
답변
각 요소를 숨기는 대신 전체 축을 숨길 수 있습니다.
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()
축에 레이블을 추가 할 수 있습니다.
답변
그리드 선을 유지하는 축 텍스트 만 숨기려면
frame1 = plt.gca()
frame1.axes.xaxis.set_ticklabels([])
frame1.axes.yaxis.set_ticklabels([])
이렇게 set_visible(False)
나 set_ticks([])
또한 격자 선을 숨 깁니다.
답변
당신이 나와 같고 항상 좌표축을 검색하지 않는 ax
경우, 그림을 그릴 때 간단한 해결책은
plt.xticks([])
plt.yticks([])
답변
다소 오래된 스레드이지만 최신 버전의 matplotlib을 사용하는 더 빠른 방법 인 것 같습니다.
x 축의 주요 포맷터를 설정
ax.xaxis.set_major_formatter(plt.NullFormatter())
답변
실제로 여기의 코드 스 니펫 (답변에서 수락 된 코드 스 니펫)을 기반으로 테두리 나 축 데이터가없는 이미지를 렌더링 할 수 없었습니다. 일부 API 문서를 파고 들자 이미지를 렌더링하기 위해이 코드를 방문했습니다.
plt.axis('off')
plt.tick_params(axis='both', left='off', top='off', right='off', bottom='off', labelleft='off', labeltop='off', labelright='off', labelbottom='off')
plt.savefig('foo.png', dpi=100, bbox_inches='tight', pad_inches=0.0)
tick_params
호출을 사용하여 렌더링 될 수있는 추가 정보를 기본적으로 종료하고 출력 파일에 완벽한 그래프가 있습니다.
답변
프로세스를 쉽게하기 위해이 그림을 색상으로 코딩했습니다.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
이 명령을 사용하여 그림을 완전히 제어하고 스플라인에 대한 제어도 추가 한 답변을 완료 할 수 있습니다.
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# X AXIS -BORDER
ax.spines['bottom'].set_visible(False)
# BLUE
ax.set_xticklabels([])
# RED
ax.set_xticks([])
# RED AND BLUE TOGETHER
ax.axes.get_xaxis().set_visible(False)
# Y AXIS -BORDER
ax.spines['left'].set_visible(False)
# YELLOW
ax.set_yticklabels([])
# GREEN
ax.set_yticks([])
# YELLOW AND GREEN TOGHETHER
ax.axes.get_yaxis().set_visible(False)
답변
객체 지향 API를 사용하는 경우, Axes
객체는 축 텍스트를 제거하기위한 두 가지 유용한 방법을 가지고 set_xticklabels()
와 set_xticks()
.
당신이 사용하여 줄거리를 만들어
fig, ax = plt.subplots(1)
ax.plot(x, y)
눈금 레이블을 제거하려는 경우
ax.set_xticklabels([])
또는 진드기를 완전히 제거하려면
ax.set_xticks([])
이 방법은 눈금을 원하는 위치와 레이블을 지정하는 방법을 정확하게 지정하는 데 유용합니다. 빈 목록을 전달하면 각각 눈금이 없거나 레이블이 없습니다.