Programing

matplotlib에서 위쪽 및 오른쪽 축을 어떻게 제거 할 수 있습니까?

lottogame 2020. 8. 21. 08:21
반응형

matplotlib에서 위쪽 및 오른쪽 축을 어떻게 제거 할 수 있습니까?


기본 "박스형"축 스타일 대신 왼쪽 및 아래쪽 축만 갖고 싶습니다. 즉 :

+------+         |
|      |         |
|      |   --->  |
|      |         |
+------+         +-------

이것은 쉬울 것이지만 문서에서 필요한 옵션을 찾을 수 없습니다.


이 공식 웹 사이트에서 제안하기 matplotlib 3 솔루션입니다 여기 :

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

ax = plt.subplot(111)
ax.plot(x, y)

# Hide the right and top spines
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

# Only show ticks on the left and bottom spines
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')

plt.show()

여기에 이미지 설명 입력


또는 이것은

def simpleaxis(ax):
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    ax.get_xaxis().tick_bottom()
    ax.get_yaxis().tick_left()

회전 된 레이블 지원을 잃지 않고 축에서 동일한 효과를 달성하는 것 같습니다.

(Matplotlib 1.0.1; 이것에서 영감을 얻은 솔루션 ).


[편집] matplotlib in now (2013-10) on version 1.3.0, which includes this

이 기능은 실제로 방금 추가되었으며 Subversion 버전이 필요합니다. 여기 에서 예제 코드를 볼 수 있습니다 .

나는 지금 온라인에 더 나은 예가 있다고 말하기 위해 업데이트하고 있습니다. 그래도 Subversion 버전이 필요하지만 아직 출시되지 않았습니다.

Matplotlib 0.99.0 RC1이 방금 출시되었으며이 기능이 포함되어 있습니다.


틱 등이 필요하지 않은 경우 (예 : 정성적인 일러스트레이션을 그리는 경우) 다음과 같은 빠른 해결 방법을 사용할 수도 있습니다.

축을 보이지 않게 (예 :로 plt.gca().axison = False) 만든 다음로 수동으로 그립니다 plt.arrow.


(이것은 여기에 포괄적 인 답변 외에도 확장 주석에 가깝습니다.)


이 세 가지 요소를 서로 독립적으로 숨길 수 있습니다.

  • 테두리 ( "척추"라고도 함)를 숨기려면 : ax.set_frame_on(False)또는ax.spines['top'].set_visible(False)

  • 진드기를 숨기려면 : ax.tick_params(top=False)

  • 레이블을 숨기려면 : ax.tick_params(labeltop=False)


Seaborn 라이브러리에는 despine () 함수가 내장되어 있습니다.

다음을 추가하십시오.

import seaborn as sns

이제 그래프를 만듭니다. 그리고 끝에 추가하십시오.

sns.despine()

함수의 기본 매개 변수 값 중 일부를 보면 위쪽 및 오른쪽 척추가 제거되고 아래쪽 및 왼쪽 척추가 유지됩니다.

sns.despine(top=True, right=True, left=False, bottom=False)

https://seaborn.pydata.org/generated/seaborn.despine.html 에서 추가 문서를 확인하십시오.


모든 플롯에서 제거해야하는 경우 스타일 설정 (스타일 시트 또는 rcParams)에서 척추를 제거 할 수 있습니다. 예 :

import matplotlib as mpl

mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False

모든 척추를 제거하려면 다음을 수행하십시오.

mpl.rcParams['axes.spines.left'] = False
mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False
mpl.rcParams['axes.spines.bottom'] = False

참고 URL : https://stackoverflow.com/questions/925024/how-can-i-remove-the-top-and-right-axis-in-matplotlib

반응형