> 백엔드 개발 > 파이썬 튜토리얼 > Matplotlib에서 불연속 축을 만드는 방법은 무엇입니까?

Matplotlib에서 불연속 축을 만드는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-01 16:33:12
원래의
1042명이 탐색했습니다.

How to Create Discontinuous Axes in Matplotlib?

Matplotlib에서 불연속 축 생성

소개:

Matplotlib를 사용하여 플롯을 생성할 때, 연속적인 x축이 일반적으로 사용됩니다. 그러나 x축 값에 간격이나 점프가 발생하는 불연속 축이 필요한 경우가 있을 수 있습니다. 이는 값이 없거나 희박하게 분포된 데이터를 표시하는 데 유용할 수 있습니다.

하위 도표 사용:

불연속 축을 생성하는 한 가지 접근 방식은 하위 도표를 사용하는 것입니다. 각 서브플롯에는 서로 다른 x축 값 범위가 할당될 수 있으므로 서브플롯 사이에 간격이 생길 수 있습니다. 간단한 예는 다음과 같습니다.

import matplotlib.pyplot as plt

x1 = np.linspace(0, 5, 100)
y1 = np.sin(x1)

x2 = np.linspace(10, 15, 100)
y2 = np.cos(x2)

plt.subplot(1, 2, 1)
plt.plot(x1, y1)

plt.subplot(1, 2, 2)
plt.plot(x2, y2)

plt.show()
로그인 후 복사

사용자 정의 축 변환:

불연속 축을 생성하는 또 다른 방법은 사용자 정의 축 변환을 사용하는 것입니다. 새로운 변환 클래스를 정의함으로써 데이터가 축에 매핑되는 방식을 지정할 수 있습니다. 다음 코드는 이 접근 방식을 보여줍니다.

import matplotlib.pyplot as plt
from matplotlib.transforms import Transform
from matplotlib.ticker import LogLocator

class DiscontinuousTransform(Transform):
    def __init__(self, breaks):
        Transform.__init__(self)
        self.breaks = breaks

    def transform(self, values):
        new_values = values.copy()
        for break in self.breaks:
            new_values[values > break] += 1
        return new_values

    def inverted(self):
        return InvertedDiscontinuousTransform(self.breaks)

class InvertedDiscontinuousTransform(Transform):
    def __init__(self, breaks):
        Transform.__init__(self)
        self.breaks = breaks

    def transform(self, values):
        new_values = values.copy()
        for break in self.breaks:
            new_values[values >= break] -= 1
        return new_values

    def inverted(self):
        return DiscontinuousTransform(self.breaks)

x = np.linspace(0, 10, 100)
y = np.sin(x)

trans = DiscontinuousTransform([5])
locator = LogLocator(base=10)
locator.set_params(minor_locator=None)

plt.plot(x, y, transform=trans)

plt.gca().xaxis.set_major_locator(locator)
plt.gca().xaxis.set_major_formatter(plt.FormatStrFormatter("%0.0f\n(pert)"))

plt.show()
로그인 후 복사

결론:

Matplotlib에서 불연속 축을 만드는 것은 하위 그림이나 사용자 지정 축 변환을 사용하여 수행할 수 있습니다. 사용자 정의 변환 접근 방식은 축 동작에 대한 더 많은 유연성과 제어를 제공합니다. 두 방법 모두 간격이나 불연속성이 있는 데이터를 시각화하는 데 효과적일 수 있습니다.

위 내용은 Matplotlib에서 불연속 축을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿