[파이썬] matplotlib 웹 어플리케이션 통합하기

매트플롯립(Matplotlib)은 파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리 중 하나입니다. 이 라이브러리를 사용하면 다양한 차트와 플롯을 만들어 데이터를 시각적으로 표현할 수 있습니다.

이번 블로그 포스트에서는 Matplotlib를 사용하여 웹 어플리케이션에 통합하는 방법을 알아보겠습니다. 이를 통해 사용자는 웹 브라우저에서 실시간으로 차트를 생성하고 조작할 수 있습니다.

필요한 라이브러리 설치하기

먼저, 아래 명령어를 사용하여 필요한 라이브러리를 설치해야 합니다.

pip install matplotlib Flask

Flask 앱 만들기

import matplotlib.pyplot as plt
from flask import Flask, render_template, request, redirect, url_for, send_file

app = Flask(__name__)

# 차트를 생성하는 함수
def generate_chart():
    # 데이터 준비
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]

    # 차트 생성
    plt.plot(x, y)
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('Sample Chart')

    # 차트를 이미지 파일로 저장
    chart_path = 'static/chart.png'
    plt.savefig(chart_path)

    # 생성된 차트 이미지 파일의 경로 반환
    return chart_path

# 홈 페이지
@app.route('/')
def home():
    return render_template('index.html')

# 차트 페이지
@app.route('/chart')
def chart():
    # 차트 생성
    chart_path = generate_chart()

    return render_template('chart.html', chart_path=chart_path)

# 차트 다운로드
@app.route('/download')
def download():
    chart_path = generate_chart()
    
    return send_file(chart_path, as_attachment=True)

if __name__ == '__main__':
    app.run(debug=True)

템플릿 만들기

위의 Flask 앱 코드에서 차트를 화면에 표시하기 위해 두 개의 템플릿 파일(index.htmlchart.html)이 필요합니다. 아래는 예시 템플릿 코드입니다.

index.html


<!DOCTYPE html>
<html>
<head>
    <title>Matplotlib 웹 어플리케이션</title>
</head>
<body>
    <h1>Matplotlib 웹 어플리케이션</h1>
    <p><a href="{{ url_for('chart') }}">차트 보기</a></p>
    <p><a href="{{ url_for('download') }}">차트 다운로드</a></p>
</body>
</html>

chart.html


<!DOCTYPE html>
<html>
<head>
    <title>차트 페이지</title>
</head>
<body>
    <h1>차트 페이지</h1>
    <img src="{{ chart_path }}" alt="차트 이미지">
</body>
</html>

실행하기

위의 코드와 템플릿 파일들을 준비한 다음, 터미널에서 아래 명령어를 실행하여 Flask 앱을 실행할 수 있습니다.

python app.py

플라스크 서버가 실행된 후에는 웹 브라우저에서 http://localhost:5000으로 접속하면 웹 어플리케이션을 확인할 수 있습니다. 링크를 클릭하여 차트를 확인하거나 다운로드할 수 있습니다.

결론

이 블로그 포스트에서는 Matplotlib를 사용하여 Flask 웹 어플리케이션에 통합하는 방법을 알아보았습니다. 이를 통해 사용자는 웹 브라우저에서 실시간으로 차트를 생성하고 조작할 수 있습니다. 이 기능을 활용하면 데이터 시각화를 웹에서 편리하게 사용할 수 있으며, 다른 기능들을 추가하여 데이터 분석 및 시각화 웹 어플리케이션을 개발할 수도 있습니다.