Skip to content
튜토리얼
Matplotlib
Matplotlib에서 Y축 범위 설정하는 방법

Matplotlib 마스터하기: Y축 범위 정확하게 설정하기

Matplotlib에서 y축의 한계를 설정하는 데 어려움이 있나요? 자동적으로 설정되는 y축 범위 때문에 답답한가요? 이 "Matplotlib에서 Y축 범위를 설정하는 방법" 가이드는 작성하는 데이터를 모두 y축으로 표시하므로 당신이 원하는 대로 그래프를 만들수 있게 해줄 것입니다.

잠깐, Matplotlib에서 Y축 범위를 설정하는 중요성에 대해서 이해해봅시다. 대푯값은 아닙니다. Y 축 범위를 올바라게 설정하는 것은 데이터가 올바르게 나타나도록 필수적입니다. Y 축 범위를 잘못 설정하면 데이터 추세가 왜곡될 수 있고 뷰어를 오도할 수도 있습니다. 따라서 Y축 범위를 수동으로 설정하는 방법을 알면 시각화 품질을 향상시킬 뿐만 아니라 데이터 표현의 명확성과 정확성을 향상시키는 데 도움이 됩니다.

Matplotlib 해석하기: Y축 범례 정리

먼저, Matplotlib에서 Y축이 어떤 역할을 하는지 명확히 이해합시다. 대부분의 2D 그래프에서 Y축은 종속 변수를 나타내며 X축에 그려진 독립 변수에 응답하여 변합니다. 따라서 Y 축 범위는 그래프에서 이 종속 변수의 하한 및 상한 값을 정의합니다.

Y축 범위를 설정하는 가장 간단한 방법은 Matplotlib의 pyplot 모듈에서 ylim() 함수를 사용하는 것입니다. 이 함수를 사용하여 Y축의 최저 및 최고 한계를 인수로 지정할 수 있습니다. 간단한 예제를 확인해봅시다.

import matplotlib.pyplot as plt
 
plt.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
plt.ylim(0, 20)
plt.show()

이 예제에서는 간단한 이차 함수를 그래프로 표현했을 뿐만 아니라 Y축 범위를 plt.ylim(0, 20)로 설정했습니다.

Matplotlib Y축 범위: 더 많은 제어를 위한 축 객체 사용

plt.ylim()은 간단한 그래프에 대해서는 좋지만, 더 복잡한 그래프의 경우 Y축 범위에 더 미세한 조절이 필요할 수 있습니다. 이때 Matplotlib에서 제공하는 객체 지향 API를 사용할수 있습니다.

"plt" 모듈 대신 Axes 객체를 직접 생성하여 사용할 수도 있습니다. 각 Axes 객체는 Y축 범위를 설정하는 데 사용할 수 있는 set_ylim()set_ybound()와 같은 다양한 메서드로 제공됩니다.

아래 예제에서는 축 객체를 사용하여 Y축 범위를 설정하는 방법을 보여줍니다.

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ax.set_ylim(0, 20)
plt.show()

이 예제에서는 먼저 plt.subplots()로 Figure와 Axes 객체를 생성합니다. 그런 다음 Axes 객체에 이차 함수를 그래프로 표현합니다. 마지막으로 ax.set_ylim(0, 20)를 사용하여 Y축 범위를 설정합니다.

동적 Y축 범위: Y축 한계 범위 동적 조정

때로는 데이터나 다른 기준에 따라 Y축 범위를 동적으로 조정하고 싶을 수 있습니다. 이 경우 get_ylim(), set_ylim(), get_ybound()set_ybound()와 같은 함수를 사용할 수 있습니다.

다음 예제는 동적으로 Y축 범위를 설정하는 방법을 보여줍니다.

 

fig, ax = plt.subplots()

ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])

ymin, ymax = ax.get_ylim()

ax.set_ylim(ymin, ymax*1.1)

plt.show()

이 예제에서는 우리가 우선 `ax.get_ylim()`을 사용하여 현재 y-축 범위를 가져옵니다. 그런 다음 현재 최대값을 10%로 확장하는 새로운 y-축 범위를 설정합니다. 이렇게 하려면 `ax.set_ylim(ymin, ymax*1.1)`을 사용하면 됩니다.

matplotlib의 다재다능성 덕분에 y-축 범위를 설정하는 데 많은 다른 방법이 있습니다. 그러나 이어지는 섹션에서 자세히 살펴보겠습니다.

## 더 진보적인 방법: Y-축 범위의 기본 이상

matplotlib은 Y-축 범위를 설정하는 더 고급 기능도 제공합니다. 이 기능은 멀티 패널 피규어를 만들 때 여러 서브 플롯에 동일한 Y-축 범위를 적용하려는 경우 또는 데이터에 따라 Y-축 범위를 동적으로 조정하려는 경우에 특히 유용할 수 있습니다.

### 여러 서브플롯에 동일한 Y-축 범위 설정

여러 서브 플롯을 포함하는 멀티 패널 피규어를 만들 때 모든 서브 플롯에 동일한 Y-축 범위를 사용하려면 각 Axes 개체를 지나가면서 각각의 Y-축 범위를 설정하면 됩니다. 다음은 그 예입니다:

```python
fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
    ax.set_ylim(0, 20)
plt.show()

이 예제에서는 먼저 plt.subplots(2, 2)으로 2x2 서브 플롯 그리드를 만듭니다. 그런 다음 결과 배열에서 모든 Axes 개체를 루프에 걸어 각각의 Y-축 범위를 ax.set_ylim(0, 20)으로 설정합니다.

데이터에 따라 Y-축 범위를 동적으로 조정

Y-축 범위를 데이터 자체에 맞게 동적으로 조정하는 더 고급 기술도 있습니다. 예를 들어 Y-축 범위를 데이터 세트의 최소값에서 최대값으로 이어지도록 설정하려는 경우가 있습니다. 이렇게 하는 방법 예를 들면 다음과 같습니다:

data = [0, 1, 4, 9, 16]
fig, ax = plt.subplots()
ax.plot([0, 1, 2, 3, 4], data)
ax.set_ylim(min(data), max(data))
plt.show()

이 예제에서는 우선 데이터 포인트의 목록을 정의합니다. 그런 다음 Figure 및 Axes 개체를 만들고, Axes 개체에 데이터를 플롯하고 Y-축 범위를 데이터 세트의 최소값에서 최대값까지 이어지도록 설정합니다.

Matplotlib 대체: PyGWalker를 사용하여 데이터 시각화

판다스 데이터프레임을 시각화하는 데 Matplotlib을 사용하는 대신, PyGWalker라는 Open Source python 라이브러리를 사용하여 데이터 시각화를 생성할 수 있습니다. 이를 사용하면 더 이상 복잡한 Python 코딩을 완료할 필요가 없으며, 데이터를 가져와 변수를 끌어다 놓아 다양한 데이터 시각화를 생성할 수 있습니다! 여기 작동 방법에 대한 빠른 데모 비디오가 있습니다.

PyGWalker for Data visualization (opens in a new tab)

다음은 Jupyter 노트북에서 PyGWalker를 사용하는 방법입니다.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

대신 Kaggle Notebook/Google Colab에서 시도해 볼 수 있습니다 :

Kaggle Notebook에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker을 GitHub에서 ⭐️로 평가하기 (opens in a new tab)
Kaggle Notebook에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)GitHub에서 PyGWalker 실행 (opens in a new tab)

PyGWalker는 오픈 소스 커뮤니티의 지원을 기반으로 만들어졌습니다. PyGWalker GitHub (opens in a new tab)에서 별을 주지 않는 것을 잊지 마세요!

자주 묻는 질문

1. matplotlib의 ylim()set_ylim()의 차이점은 무엇인가요?

ylim()은 현재 plot의 y축 범위를 설정하는 데 사용할 수 있는 matplotlib의 pyplot 모듈의 함수입니다. 반면, set_ylim()은 matplotlib의 객체 지향 API의 Axes 클래스의 메서드로, 특정 Axes 객체의 y축 범위를 설정하는 데 사용할 수 있습니다.

2. 데이터에 기반하여 y축 범위를 자동으로 조정하려면 어떻게 해야 하나요?

데이터에 기반하여 y축 범위를 자동으로 조정하려면, Axes 클래스의 autoscale() 메서드를 사용하여 y축 범위를 자동으로 조정할 수 있습니다. 더 많은 제어를 위해, get_ylim() 메서드를 사용하여 현재 y축 범위를 가져온 다음, 필요에 따라 조정한 후 set_ylim()로 설정할 수 있습니다.

3. 여러 하위 그림에 대해 y축 범위를 동시에 설정할 수 있나요?

네, 모든 Axes 객체를 루프를 통해 반복하고 각 하나의 y축 범위를 설정하여 여러 하위 그림에 대해 y축 범위를 설정할 수 있습니다.

JSONldScript에서 가져와주세요:

<JSONldScript
faq={{
    data: [
    {
        question: 'matplotlib의 ylim()과 set_ylim()의 차이점은 무엇인가요?',
        answer: 'ylim()은 현재 plot의 y축 범위를 설정하는 데 사용할 수 있는 matplotlib의 pyplot 모듈의 함수입니다. 반면, set_ylim()은 matplotlib의 객체 지향 API의 Axes 클래스의 메서드로, 특정 Axes 객체의 y축 범위를 설정하는 데 사용할 수 있습니다.',
        },
    {
        question: '데이터에 기반하여 y축 범위를 자동으로 조정하려면 어떻게 해야 하나요?',
        answer: '데이터에 기반하여 y축 범위를 자동으로 조정하려면, Axes 클래스의 autoscale() 메서드를 사용하여 y축 범위를 자동으로 조정할 수 있습니다. 더 많은 제어를 위해, get_ylim() 메서드를 사용하여 현재 y축 범위를 가져온 다음, 필요에 따라 조정한 후 set_ylim()로 설정할 수 있습니다.',
        },
    {
        question: '여러 하위 그림에 대해 y축 범위를 동시에 설정할 수 있나요?',
        answer: '네, 모든 Axes 객체를 루프를 통해 반복하고 각 하나의 y축 범위를 설정하여 여러 하위 그림에 대해 y축 범위를 설정할 수 있습니다.',
        },
    ]
}}
/>