Да, Matplotlib может работать с Flask, популярной веб-инфраструктурой Python. Matplotlib — это мощная библиотека для создания визуализаций, которую можно интегрировать в веб-приложения Flask для динамического создания и отображения графиков.
Вот несколько способов использования Matplotlib с Flask, а также примеры кода:
Метод 1. Создайте график и сохраните его как файл изображения, а затем отобразите изображение в маршруте Flask.
import matplotlib.pyplot as plt
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/')
def plot():
# Create a plot using Matplotlib
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Flask and Matplotlib')
# Save the plot as a PNG image
image_path = 'plot.png'
plt.savefig(image_path)
# Return the image file in the Flask response
return send_file(image_path, mimetype='image/png')
if __name__ == '__main__':
app.run()
Метод 2: используйте бэкэнд FigureCanvasи AggMatplotlib для визуализации графика в виде изображения и непосредственного встраивания его в шаблон Flask.
from flask import Flask, render_template
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
app = Flask(__name__)
@app.route('/')
def plot():
# Create a plot using Matplotlib
fig = Figure()
axis = fig.add_subplot(1, 1, 1)
axis.plot([1, 2, 3, 4], [1, 4, 9, 16])
axis.set_xlabel('X-axis')
axis.set_ylabel('Y-axis')
axis.set_title('Flask and Matplotlib')
# Render the plot as an image and embed it in the Flask template
canvas = FigureCanvas(fig)
img = io.BytesIO()
canvas.print_png(img)
img.seek(0)
return render_template('plot.html', image=img)
if __name__ == '__main__':
app.run()
В приведенных выше примерах кода первый метод сохраняет график как изображение PNG и возвращает его как ответ Flask, а второй метод визуализирует график как изображение с помощью FigureCanvasMatplotlib и встраивает его. в шаблоне Flask.