x 축에이 형식과 같은 레이블이 있어야합니다
0 1 2 3 4 5 Xlabel
그러나 아래 코드를 시도하면 2 줄이 나타납니다
self.axes.set_xticks(np.arange(0,6,1))
self.axes.set_xlabel('Xlabel', fontsize=9,x=1,y=1)
=>내 결과 : (
0 1 2 3 4 5
Xlabel
- 답변 # 1
- 답변 # 2
@Yann이 이미 말한 내용 외에도 실제로
Tick
로이 작업을 수행하는 것이 더 쉽습니다. . 확대/축소 할 때도 올바른 위치에 유지됩니다.import matplotlib.pyplot as plt import numpy as np ax = plt.gca() ax.set_xticks(np.arange(0,6,1)) ax.set_yticks(np.arange(0,6,1)) label = ax.set_xlabel('xlabel', ha='left', va = 'top', )#fontsize = 9) # need to draw the figure first to position the tick labels fig = plt.gcf() fig.draw(fig.canvas.get_renderer()) # get a tick and will position things next to the last one ticklab = ax.xaxis.get_ticklabels()[0] trans = ticklab.get_transform() ax.xaxis.set_label_coords(5.1, 0, transform=trans) plt.savefig('labelAtEnd2.png') plt.show()
- 답변 # 3
@JoeKington 방법을 사용하는 변형은 다음과 같습니다. . 마지막 눈금 레이블을 축 이름으로 변경합니다. 먼저 마지막 틱을 빈 문자열로 설정 한 다음 annotate ()를 사용합니다. 축 레이블의 글꼴 크기를 제어해야하기 때문에 annotate ()를 사용했습니다.
annotate
어쩌면 누군가가이 작업을 수행하는 더 우아한 방법을 알고있을 것입니다. 엄청나게 복잡한 작업이기 때문입니다.
- 답변 # 4
@JoeKington에서 제공 한 솔루션을 사용합니다.
import matplotlib.pyplot as plt import matplotlib as mpl ticklabelpad = mpl.rcParams['xtick.major.pad'] fig, ax = plt.subplots() ax.set_xlim([0, 5]) # Add the label as annotation. The "5" is the padding betweent the right side # of the axis and the label... ax.annotate('XLabel', xy=(1,0), xytext=(5, -ticklabelpad), ha='left', va='top', xycoords='axes fraction', textcoords='offset points') plt.show()
에 의해 생성 된 텍스트에 레이블 글꼴 속성을 부여하는 확장 .축 레이블의 형식이 다른 텍스트와 다른 경우 중요합니다.
import numpy as np import matplotlib.pyplot as plt plt.xlim(50, 70) plt.ylim(100, 250) ax = plt.gca() # clears last tick label xticks = ax.get_xticks().tolist() xticks[-1] = '' ax.set_xticklabels(xticks) yticks = ax.get_yticks().tolist() yticks[-1] = '' ax.set_yticklabels(yticks) # sets axes labels on both ends ax.annotate('$t$', xy=(0.98, 0), ha='left', va='top', xycoords='axes fraction', fontsize=20) ax.annotate('$x$', xy=(0, 1), xytext=(-15,2), ha='left', va='top', xycoords='axes fraction', textcoords='offset points', fontsize=20) plt.show(block=True)
ax.annotate(...)
관련 자료
- python - 그리드 선의 시작 위치를 설정하는 방법은 무엇입니까?
- r - 특정 날짜를 연도의 시작 날짜로 설정하는 방법
- c# - DateTime을 하루의 시작/끝으로 설정하는 방법은 무엇입니까?
- drupal - 프로그래밍 방식으로 등록 양식에 역할을 설정하는 방법
- go - 데이터베이스 시간대 설정 방법
- android - 오버플로 메뉴 아이콘에 여백을 설정하는 방법은 무엇입니까?
- python - notepad ++로 __init__ 함수 끝에 "-> none - "을 추가하는 방법은 무엇입니까?
- apache - URL 끝에서 URL을 무시하는 방법
- python - 행 간의 차이를 얻는 방법
- javascript - localstorage의 데이터로 저장소를 초기화하는 방법은 무엇입니까?
- big sur - macOS Big Sur 1101에서 시간 알림을 중지하는 방법
- r - 각 ID에 대해 하나의 레코드를 가질 수 있도록 df를 재구성하는 방법
- 텍스트 글꼴을 설정하고 VBA를 사용하여 Word의 방정식에 글꼴을 유지하려면 어떻게합니까?
- android - 행 항목을 화면에 맞추는 방법
- javascript - 이 배열의 모든 자손을 얻는 방법은 무엇입니까?
- r - ggplot2에서 얼굴 라벨을 추가하는 방법
- php - 다음 어레이를 어떻게 구할 수 있습니까?
- `self`에서 관련 상수를 설정하는 방법 (녹에서)
- ios - 신속하게 응답 JSON을 얻는 방법
- css - HTML 단락의 맨 아래 만 채우는 방법은 무엇입니까?
- python : TypeError: matplotlib에서 플롯의 정수 스칼라 배열만 스칼라 인덱스로 변환할 수 있습니다.
- 사전(python, dict, 여러 플롯)에서 여러 dfs를 사용하여 루프에서 특정 수의 플롯을 플롯합니다.
- python : 텍스트를 기울임꼴로 만든 후 Figsize 및 축 선 너비가 갑자기 작아짐
- "ValueError: Shape Mismatch"로 이어지는 Python 오류 캐스케이드
- python : pandas DataFrame 플롯 xticks 간격이 작동하지 않습니다.
- python : matplotlib의 vlines에서 한 줄의 색상을 변경할 수 있습니까?
- python : Matplotlib pyplot stackplot은 앤티앨리어싱 시 아티팩트를 생성합니다.
- python : matplotlib를 사용하는 파이썬에서 matplotlib.pyplot.xlabel()과 .set_xlabel()의 차이점은 무엇입니까?
- python : matplotlib를 사용하여 3D Numpy 배열을 플로팅하는 분산형
- matplotlib(Python)에서 초 대신 HH:MM:SS에서 y축 만들기
xlabel을 설정할 때
x
매개 변수는 축 단위로 위치를 지정하므로 0은 원점이고 1은 플롯의 오른쪽 가장자리입니다. 와이즈 비즈 눈금 바로 아래의 기본값 일 것으로 예상되므로 무시됩니다.이 동작을 무시하려면
y
를 사용하여 축 단위로 위치를 설정할 수 있습니다 와이즈 비즈 방법. 변형을 제공하여 다른 단위를 사용할 수도 있습니다.예 :
결과 :
x 값 (1.05)을 선택하여 레이블을 축 프레임 외부에 배치했습니다. y 값 (-0.025)이 원하는 위치에 대한 최상의 추측으로 선택되었습니다. 변환을 사용하면 텍스트를
set_label_coords
에 맞춰 자동으로 배치 할 수 있습니다 라벨.수정 :
다음은 변환을 사용하는 확장 된 예입니다. 텍스트의 크기와 정렬 방법을 고려하지 않기 때문에 마지막 ticklabel의 변환을 사용하는 것이 반드시 도움이되지는 않습니다. 따라서 다소 원하는 효과를 얻으려면 1) 내 x 레이블에 동일한 글꼴 크기를 사용하고 2) 세로 정렬 (va)을 '위'에 배치하고 3) 가로 정렬을 '왼쪽'에 배치해야했습니다. 각 눈금에 대한 변환은 x의 데이터 단위 (x 축이므로) 및 y의 축 단위 (0 ~ 1)에 대해 설정되지만 x 축에서 고정 패딩 (픽셀)으로 대체됩니다.
결과 :