>백엔드 개발 >파이썬 튜토리얼 >Matplotlib에서 `twinx()`를 사용할 때 단일 범례에 두 축의 레이블을 어떻게 표시합니까?

Matplotlib에서 `twinx()`를 사용할 때 단일 범례에 두 축의 레이블을 어떻게 표시합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-01 06:16:01545검색

How do I display labels from both axes in a single legend when using `twinx()` in Matplotlib?

Twinx() 플롯에 보조 축 범례 추가

winx()를 사용하여 생성된 두 개의 y축이 있는 플롯에서 다음을 추가합니다. 라인에 라벨을 붙이고 범례에 표시하는 것은 어려울 수 있습니다. 처음에는 기본 축의 레이블만 범례에 나타날 수 있습니다.

이 문제를 해결하려면 다음 줄을 사용하여 보조 축에 대한 범례를 추가하세요.

ax2.legend(loc=0)

그러면 다음과 같은 결과가 발생합니다. 두 개의 개별 범례, 각 축에 하나씩.

그러나 단일 범례에 모든 레이블을 적용하려면 다음 단계를 따르십시오.

  1. 두 축을 모두 정의하고 선을 그립니다. :

    ax = fig.add_subplot(111)
    ax2 = ax.twinx()
    
    lns1 = ax.plot(...)
    lns2 = ax.plot(...)
    lns3 = ax2.plot(...)
  2. 범례 핸들 및 레이블 정의:

    lns = lns1 + lns2 + lns3
    labs = [l.get_label() for l in lns]
  3. 다음을 사용하여 범례 추가:

    ax.legend(lns, labs, loc=0)

이 접근 방식은 단일 범례에 모든 축 레이블을 표시합니다.

위 내용은 Matplotlib에서 `twinx()`를 사용할 때 단일 범례에 두 축의 레이블을 어떻게 표시합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.