푸터 콘텐츠로 바로가기
PYTHON 도움말

Matplotlib Python 초보자 가이드

데이터 시각화는 데이터에서 통찰력을 도출하고 결과를 효과적으로 전달하는 데 필수적인 도구입니다. Python에서 널리 사용되는 플로팅 라이브러리인 Matplotlib은 데이터 포인트를 사용하여 다양한 정적, 대화형 및 출판 품질의 시각화를 생성할 수 있는 유연하고 직관적인 인터페이스를 제공합니다. 이 글에서는 Python의 Matplotlib 라이브러리를 자세히 살펴보고, 그 기능, 활용법, 그리고 실제 예제를 통해 Python에서 데이터 시각화의 잠재력을 최대한 발휘하는 방법을 알아보겠습니다. 우리는 Iron Software의 PDF 생성 라이브러리 IronPDF에 대해서도 배울 것입니다.

Matplotlib 소개

Matplotlib은 다양한 형식과 환경에서 고품질 그림을 생성하는 포괄적인 Python용 2D 플로팅 라이브러리입니다. 존 D.가 개발했습니다. Matplotlib은 Hunter가 개발하고 활발한 기여자 커뮤니티에 의해 유지 관리되며, Python에서 데이터 시각화의 다양성과 견고성을 크게 향상시킵니다. 이 프로그램은 선 그래프, 산점도, 막대 그래프, 히스토그램, 히트맵 등과 같은 정적 그래프를 생성하기 위한 다양한 플로팅 기능을 제공합니다. Matplotlib은 격자선과 막대 차트를 포함한 대화형 시각화를 지원하며 웹 애플리케이션에서도 사용할 수 있습니다. 또한, 축, 레이블, 범례, 색상 및 스타일을 포함한 그래프 요소에 대한 세밀한 제어 기능을 제공하여 사용자가 특정 요구 사항에 맞게 시각화를 사용자 지정할 수 있도록 합니다.

Matplotlib의 주요 기능

  1. 다양한 플롯 유형: Matplotlib은 선 그래프, 산점도, 막대 그래프, 히스토그램, 원형 차트, 상자 그림, 바이올린 그림, 등고선 그림 및 3D 플롯을 포함한 다양한 플롯 유형을 지원합니다. 이러한 다재다능함 덕분에 사용자는 다양한 유형의 데이터와 그 관계를 효과적으로 시각화할 수 있습니다.
  2. 유연한 플롯 사용자 정의: Matplotlib은 축, 레이블, 눈금, 색상, 마커 및 선 스타일과 같은 플롯 요소를 수정할 수 있는 광범위한 사용자 정의 옵션을 제공합니다. 사용자는 절차적 인터페이스와 객체 지향 인터페이스를 모두 사용하여 그래프를 사용자 지정할 수 있으므로 그래프의 미적 요소를 세밀하게 제어할 수 있습니다.
  3. 출판 수준의 결과물: Matplotlib은 과학 논문, 보고서, 프레젠테이션 및 웹사이트에 포함하기에 적합한 고품질의 출판용 그림을 생성합니다. PNG, PDF, SVG, EPS를 포함한 다양한 출력 형식을 지원합니다. 또한 Matplotlib과 함께 Python 스크립트를 작성하여 웹 애플리케이션용 대화형 형식을 만들 수도 있습니다.
  4. Jupyter Notebook과의 통합: Matplotlib은 Jupyter Notebook과 완벽하게 통합되어 사용자가 노트북 환경 내에서 직접 대화형 및 탐색적 시각화를 생성할 수 있도록 합니다. 이 통합을 통해 대화형 데이터 분석 및 스토리텔링 워크플로우가 용이해집니다.
  5. 다양한 백엔드 지원: Matplotlib은 Tkinter, Qt, GTK, WX, Agg를 포함한 다양한 렌더링 백엔드를 지원하므로 사용자는 자신의 애플리케이션이나 환경에 가장 적합한 백엔드를 선택할 수 있습니다. 이러한 유연성 덕분에 Matplotlib은 다양한 데스크톱 및 웹 기반 애플리케이션에서 사용될 수 있습니다.

Matplotlib 설치 중

pip install matplotlib
pip install matplotlib
SHELL

Matplotlib을 활용한 실용적인 예제

Matplotlib을 사용하여 시뮬레이션된 데이터 포인트로 일반적인 시각화를 만드는 몇 가지 실용적인 예제를 살펴보겠습니다. Python 버전 3 이상과 그래픽 사용자 인터페이스 툴킷이 설치되어 있는지 확인하십시오. 이제 Python 코드를 살펴보겠습니다.

  1. 선 그래프:

    import matplotlib.pyplot as plt  # Import Matplotlib
    
    # Define data points for the plot
    x = [1, 2, 3, 4, 5] 
    y = [2, 3, 5, 7, 11] 
    
    # Create a line plot
    plt.plot(x, y) 
    
    # Add labels and title
    plt.xlabel('X-axis')  
    plt.ylabel('Y-axis') 
    plt.title('Line Plot') 
    
    # Display the plot
    plt.show()  
    import matplotlib.pyplot as plt  # Import Matplotlib
    
    # Define data points for the plot
    x = [1, 2, 3, 4, 5] 
    y = [2, 3, 5, 7, 11] 
    
    # Create a line plot
    plt.plot(x, y) 
    
    # Add labels and title
    plt.xlabel('X-axis')  
    plt.ylabel('Y-axis') 
    plt.title('Line Plot') 
    
    # Display the plot
    plt.show()  
    PYTHON

Matplotlib Python (개발자에게 어떻게 작동하는지): 그림 1 - Matplotlib을 사용한 예제 선 그래프

  1. 산점도:

    import matplotlib.pyplot as plt  # Import Matplotlib
    
    # Define data points for the plot
    x = [1, 2, 3, 4, 5] 
    y = [2, 3, 5, 7, 11] 
    
    # Create a scatter plot
    plt.scatter(x, y) 
    
    # Add labels and title
    plt.xlabel('X-axis')  
    plt.ylabel('Y-axis') 
    plt.title('Scatter Plot') 
    
    # Display the plot
    plt.show()  
    import matplotlib.pyplot as plt  # Import Matplotlib
    
    # Define data points for the plot
    x = [1, 2, 3, 4, 5] 
    y = [2, 3, 5, 7, 11] 
    
    # Create a scatter plot
    plt.scatter(x, y) 
    
    # Add labels and title
    plt.xlabel('X-axis')  
    plt.ylabel('Y-axis') 
    plt.title('Scatter Plot') 
    
    # Display the plot
    plt.show()  
    PYTHON

Matplotlib Python (개발자에게 어떻게 작동하는지): 그림 2 - Matplotlib을 사용한 예제 산포도

  1. 히스토그램:

    import matplotlib.pyplot as plt  # Import Matplotlib
    import numpy as np  # Import NumPy for numerical operations
    
    # Generate random data
    data = np.random.randn(1000) 
    
    # Create a histogram plot
    plt.hist(data, bins=30) 
    
    # Add labels and title
    plt.xlabel('Value')  
    plt.ylabel('Frequency') 
    plt.title('Histogram') 
    
    # Display the plot
    plt.show()  
    import matplotlib.pyplot as plt  # Import Matplotlib
    import numpy as np  # Import NumPy for numerical operations
    
    # Generate random data
    data = np.random.randn(1000) 
    
    # Create a histogram plot
    plt.hist(data, bins=30) 
    
    # Add labels and title
    plt.xlabel('Value')  
    plt.ylabel('Frequency') 
    plt.title('Histogram') 
    
    # Display the plot
    plt.show()  
    PYTHON

Matplotlib Python (개발자에게 어떻게 작동하는지): 그림 3 - Matplotlib을 사용한 예제 히스토그램

Matplotlib 사용의 이점

  1. 사용 편의성: Matplotlib은 데이터 탐색 시각화를 생성하기 위한 간단하고 직관적인 인터페이스를 제공하므로 초보자부터 숙련된 데이터 과학자에 이르기까지 모든 수준의 사용자가 쉽게 접근할 수 있습니다.
  2. 유연성: Matplotlib은 다양한 사용자 지정 옵션과 플롯 유형을 제공하여 사용자가 특정 요구 사항에 맞춰 고도로 맞춤화된 시각화를 생성할 수 있도록 합니다.
  3. 통합: Matplotlib은 NumPy, Pandas, SciPy, scikit-learn을 비롯한 다른 Python 라이브러리 및 프레임워크와 원활하게 통합되어 데이터 분석 및 시각화를 위한 간소화된 워크플로를 제공합니다.
  4. 커뮤니티 및 문서: Matplotlib은 방대한 문서, 튜토리얼 및 예제를 제공하는 활발한 사용자 및 기여자 커뮤니티의 도움을 받아 라이브러리를 효과적으로 학습하고 사용할 수 있습니다.
  5. 다용성: Matplotlib은 탐색적 데이터 분석, 통계 시각화, 과학적 그래프 작성, 프레젠테이션 그래픽 등 다양한 용도로 사용할 수 있어 Python에서 다재다능한 데이터 시각화 도구입니다.

IronPDF 소개합니다

Matplotlib Python (개발자에게 어떻게 작동하는지): 그림 4 - IronPDF 홈페이지

IronPDF 는 HTML, CSS, 이미지 및 JavaScript에서 PDF를 생성, 편집 및 서명하기 위해 설계된 강력한 C# 라이브러리입니다. 이 제품은 낮은 메모리 사용량으로 상업용 수준의 성능을 제공합니다. 주요 특징은 다음과 같습니다.

HTML을 PDF로 변환: HTML 파일, HTML 문자열 및 URL을 PDF로 변환합니다. 예를 들어, Chrome PDF 렌더러를 사용하여 웹페이지를 PDF로 렌더링할 수 있습니다.

크로스 플랫폼 지원: .NET Core, .NET Standard 및 .NET Framework 포함한 다양한 .NET 플랫폼과 호환됩니다. 이 프로그램은 윈도우, 리눅스, macOS를 지원합니다.

편집 및 서명: 속성을 설정하고, 암호 및 권한으로 보안을 추가하고, PDF에 디지털 서명을 적용할 수 있습니다.

페이지 템플릿 및 설정: 머리글, 바닥글, 페이지 번호 및 조정 가능한 여백을 사용하여 PDF를 사용자 지정할 수 있습니다. 반응형 레이아웃과 사용자 지정 용지 크기를 지원합니다.

표준 준수: PDF/A 및 PDF/UA와 같은 PDF 표준을 준수합니다. UTF-8 문자 인코딩을 지원하며 이미지, CSS, 글꼴과 같은 자산을 처리합니다.

IronPDF 사용하여 PDF 문서 생성

# Import necessary libraries
from ironpdf import *
import matplotlib.pyplot as plt 
import numpy as np 

# Create a histogram plot
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.savefig('myHistogram.png')  # Save the plot as an image file

# Apply your license key
License.LicenseKey = "MyKey"

# Create a PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string containing the histogram image
content = "<h1>Awesome Iron PDF with Matplotlib</h1>"
content += "<img src='myHistogram.png'/>"
pdf = renderer.RenderHtmlAsPdf(content)

# Export the PDF to a file
pdf.SaveAs("awesome.pdf")
# Import necessary libraries
from ironpdf import *
import matplotlib.pyplot as plt 
import numpy as np 

# Create a histogram plot
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.savefig('myHistogram.png')  # Save the plot as an image file

# Apply your license key
License.LicenseKey = "MyKey"

# Create a PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string containing the histogram image
content = "<h1>Awesome Iron PDF with Matplotlib</h1>"
content += "<img src='myHistogram.png'/>"
pdf = renderer.RenderHtmlAsPdf(content)

# Export the PDF to a file
pdf.SaveAs("awesome.pdf")
PYTHON

코드 설명

  1. 히스토그램 생성: 이전 예시와 마찬가지로 무작위 데이터를 생성하고 히스토그램을 그립니다.
  2. 플롯을 이미지로 저장하기: 히스토그램 플롯은 'myHistogram.png' 라는 이름의 이미지 파일로 저장됩니다.
  3. PDF 렌더러 생성하기: PDF 생성을 처리하기 위해 ChromePdfRenderer을 초기화합니다.
  4. HTML 문자열을 PDF로 변환하기: 저장된 이미지를 포함한 HTML 콘텐츠를 생성한 후 RenderHtmlAsPdf을 사용하여 이를 PDF로 변환합니다.
  5. PDF 저장하기: 결과 PDF는 SaveAs 메서드를 사용하여 저장됩니다.

출력

Matplotlib Python (개발자에게 어떻게 작동하는지): 그림 5

IronPDF 라이선스

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-XXXX"
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-XXXX"
PYTHON

결론

결론적으로, Matplotlib은 사용자가 Python에서 다양한 고품질 시각화를 생성할 수 있도록 지원하는 강력하고 다재다능한 플로팅 라이브러리입니다. 데이터를 분석하든, 인사이트를 전달하든, 대화형 애플리케이션을 구축하든, Matplotlib은 데이터를 효과적으로 시각화하고 새로운 인사이트를 도출하는 데 필요한 도구와 유연성을 제공합니다. Iron Software의 IronPDF 라이브러리와 함께, 개발자는 복잡한 데이터 시각화를 생성하여 개발자와 사용자 간에 데이터가 의미 있는 통계로 효과적으로 전달되도록 하는 지식을 강화하여 현대 응용 프로그램의 목표를 달성할 수 있습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해