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 중국어 웹사이트의 기타 관련 기사를 참조하세요!