Displaying matplotlib plot using Flask Displaying matplotlib plot using Flask flask flask

Displaying matplotlib plot using Flask


A possible solution is to save the figure with plt.savefig and attach it to an HTML <img> tag.

from flask import Flask, render_templateimport matplotlib.pyplot as pltapp = Flask(__name__)@app.route('/plot')def plot():    left = [1, 2, 3, 4, 5]    # heights of bars    height = [10, 24, 36, 40, 5]    # labels for bars    tick_label = ['one', 'two', 'three', 'four', 'five']    # plotting a bar chart    plt.bar(left, height, tick_label=tick_label, width=0.8, color=['red', 'green'])    # naming the y-axis    plt.ylabel('y - axis')    # naming the x-axis    plt.xlabel('x - axis')    # plot title    plt.title('My bar chart!')    plt.savefig('static/images/plot.png')    return render_template('plot.html', url='/static/images/plot.png')if __name__ == '__main__':   app.run()

Then on templates/plot.html

<img src={{url}} alt="Chart" height="auto" width="100%">