Skip to content
튜토리얼
Matplotlib
Matplotlib을 사용하여 빠르게 다중 라인 그래프 생성하는 방법

Matplotlib을 사용하여 빠르게 다중 라인 그래프 생성하는 방법

데이터 시각화는 데이터 분석 파이프 라인의 핵심 요소입니다. 복잡한 데이터 세트를 명확하고 직관적으로 표현할 수 있으며, 원시 데이터 만으로는 명확하지 않은 추세와 패턴을 발견할 수 있습니다. 이러한 목적으로 사용 가능한 도구가 많지만, Matplotlib은 static, animated 및 interactive plot을 생성하는 다재다능하고 강력한 플랫폼을 제공하는 Python 라이브러리 중 가장 널리 사용됩니다.

Matplotlib에서 자주 사용되는 기능 중 하나는 하나의 차트에서 다중 라인 그래프를 생성할 수 있는 능력입니다. 이 포괄적인 가이드에서는 기본 원칙과 고급 개념에 대해 초점을 맞추어 이러한 시각화를 생성하는 방법에 대해 깊이 파고들 것입니다.

기본: 두 개의 라인 생성

두 개의 라인 그래프를 하나의 플롯에 그리는 간단한 시나리오로 시작해 보겠습니다. 온라인 포럼에 게시된 사용자가 게시한 코드는 y 축이 두 번 인쇄된다는 것을 보고했습니다.

import matplotlib.pyplot as plt
 
x = [0, 1, 2, 3, 4, 5]
y1 = ['1000', '13k', '26k', '42k', '60k', '81k']
y2 = ['1000', '13k', '27k', '43k', '63k', '85k']
 
plt.plot(x, y1)
plt.plot(x, y2, '-.')
 
plt.xlabel("X-axis data")
plt.ylabel("Y-axis data")
plt.title('multiple plots')
plt.show()

코드를 간단히 살펴보면 문제의 원인이 드러납니다: 플롯되는 y 값은 숫자 대신 문자열입니다. matplotlib이 문자열 데이터를 만나면 숫자 스케일에 따라이 값을 플롯하지 않습니다. 대신 문자 레이블을 각각의 x 좌표에 플롯하여 y 축에 여러 레이블이 겹치게 만듭니다.

문자열 문제 해결: 숫자로 변환

이 문제를 해결하려면 문자열의 "k"가 "e3"으로 대체되어 이러한 문자열이 과학적 표기법으로 숫자를 나타낼 수 있도록해야합니다. 그런 다음 Python의 float() 함수를 사용하여 부동 소수점 숫자로 변환 할 수 있습니다.

수정 된 코드는 다음과 같습니다.

import matplotlib.pyplot as plt
 
x = [0, 1, 2, 3, 4, 5]
 
y1 = ['1000', '13k', '26k', '42k', '60k', '81k']
y2 = ['1000', '13k', '27k', '43k', '63k', '85k']
 
plt.plot(x, [float(i.replace('k', 'e3')) for i in y1])
plt.plot(x, [float(i.replace('k', 'e3')) for i in y2], '-.')
 
plt.xlabel("X-axis data")
plt.ylabel("Y-axis data")
plt.title('multiple plots')
plt.show()

이 간단한 변경으로 사용자는 y축 레이블이 복제되지 않으면서 동일한 차트에 두 개의 선을 올바르게 그릴 수 있었습니다. 그러나 이 변환은 순전히 플로팅 목적으로 수행되며 원래 데이터를 수정하지 않는다는 것을 염두해야 합니다.

여러 선 그래프의 세부 조정: 범례, 그리드 라인 및 주석

범례는 legend() 함수를 사용하여 그래프에 추가할 수 있으며, 그리드 라인은 grid() 함수를 사용하여 켜거나 끌 수 있습니다. 주석을 위해서는 annotate() 함수를 사용하여 차트에 정보를 제공하는 텍스트를 추가할 수 있습니다.

이러한 기술을 적용하여 matplotlib에서 여러 선 그래프를 작성하는 최종 코드는 다음과 같을 수 있습니다.

import matplotlib.pyplot as plt
 
x = [0, 1, 2, 3, 4, 5]
 
y1 = ['1000', '13k', '26k', '42k', '60k', '81k']
y2 = ['1000', '13k', '27k', '43k', '63k', '85k']
 
plt.plot(x, [float(i.replace('k', 'e3')) for i in y1], label='선 1')
plt.plot(x, [float(i.replace('k', 'e3')) for i in y2], '-.', label='선 2')
 
plt.xlabel("X축 데이터")
plt.ylabel("Y축 데이터")
plt.title('여러 그래프')
plt.grid(True)
plt.legend()
plt.annotate('Line 2의 Peak', xy=(4, 85000), xytext=(3, 70000),
             arrowprops=dict(facecolor='black', shrink=0.05))
 
plt.show()

그림에서 볼 수 있듯이 Matplotlib을 사용하여 여러 선 그래프를 작성하는 것은 상대적으로 간단한 프로세스이며 아름답고 유익하며 통찰력있는 시각화를 만들기 위한 다양한 사용자 정의 옵션을 제공합니다.

FAQ

Q: Matplotlib을 사용하여 하나의 차트에 두 개 이상의 선을 그릴 수 있나요?

네, Matplotlib를 사용하여 여러 선을 그릴 수 있습니다. 각 선에 대한 필요한 데이터와 함께 plot() 함수를 반복하면 됩니다.

Q: Matplotlib로 생성할 수 있는 다른 유형의 그래프는 무엇인가요?

Matplotlib는 산점도, 막대 그래프, 히스토그램 및 3D plot을 비롯한 다양한 기타 플롯 유형을 지원합니다. 이 라이브러리는 매우 다재다능하며 거의 모든 데이터 시각화 요구 사항을 수용할 수 있습니다.

Q: Matplotlib를 사용하여 플롯을 파일로 저장할 수 있나요?

플롯을 생성한 후 savefig() 함수를 사용하여 파일로 저장할 수 있습니다. 함수는 파일 이름을 인수로 사용하며, 파일의 형식(예: PNG, PDF, SVG 등)을 적절한 파일 확장자를 사용하여 지정할 수 있습니다.

plt.savefig('my_plot.png')

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

pandas 데이터프레임을 시각화하는 데 Matplotlib을 사용하는 것 외에도, 데이터 시각화를 쉽게 생성할 수 있는 오픈 소스 파이썬 라이브러리인 PyGWalker (opens in a new tab)가 있습니다.

PyGWalker for Data visualization (opens in a new tab)

Python 코딩으로 복잡한 처리를 완료할 필요가 없습니다. 간단히 데이터를 가져와 변수를 끌어다 놓으면 다양한 종류의 데이터 시각화를 만들 수 있습니다! 조작에 대한 빠른 데모 비디오를 확인해보세요:

<br></br>
<div className="video-container">
<iframe width="800" height="600" src="https://www.youtube.com/embed/g5USsCdjyRY?autoplay=1&mute=1&loop=1&playlist=g5USsCdjyRY" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen playsInline></iframe>
</div>
 
이렇게 Jupyter Notebook에서 PyGWalker를 사용할 수 있습니다:
 
```python copy
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)GitHub에서 PyGWalker에 ⭐️주기 (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는 Open Source 커뮤니티의 지원으로 만들어졌습니다. PyGWalker GitHub (opens in a new tab)에서 ⭐️을 주는 것을 잊지 마세요!

자주 묻는 질문

Matplotlib에서 한 차트에서 두 개 이상의 선을 그릴 수 있나요?

네, Matplotlib를 사용하여 한 차트에서 필요한 만큼 많은 선을 그릴 수 있습니다. 원하는 각 라인의 데이터로 plot() 함수를 반복하면 됩니다.

Matplotlib로 만들 수 있는 다른 종류의 plot은 어떤 것이 있나요?

Matplotlib는 산점도, 막대 그래프, 히스토그램, 심지어 3D plot을 비롯한 다양한 종류의 plot을 지원합니다. 라이브러리는 매우 다재다능하며 거의 모든 데이터 시각화 요구를 수용할 수 있습니다.

Matplotlib를 사용하여 그림을 파일로 저장하는 방법은 무엇인가요?

플롯을 생성한 후 savefig() 함수를 사용하여 파일로 저장할 수 있습니다. 함수는 파일 이름을 인수로 취하며 적절한 파일 확장자 (예 : PNG, PDF, SVG 등)를 사용하여 파일 형식을 지정할 수 있습니다.