Python: Cómo mostrar matplotlib en un matraz

Soy muy nuevo en Flask y Matplotlib. Me gustaría poder mostrar un gráfico simple que generé en algunos html, pero me cuesta mucho descubrir cómo. Aquí está mi código de Python:

from flask import Flask, render_template import numpy as np import pandas import matplotlib.pyplot as plt app = Flask(__name__) variables = pandas.read_csv('C:\\path\\to\\variable.csv') price =variables['price'] @app.route('/test') def chartTest(): lnprice=np.log(price) plt.plot(lnprice) return render_template('untitled1.html', name = plt.show()) if __name__ == '__main__': app.run(debug = True) 

Y aquí está mi HTML:

    

Price Chart

http://sofes.miximages.com/flask/{{ name }}

Chart

    Puede generar la imagen sobre la marcha en el controlador de ruta de URL de Flask:

     import io import random from flask import Response from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas from matplotlib.figure import Figure @app.route('https://stackoverflow.com/plot.png') def plot_png(): fig = create_figure() output = io.BytesIO() FigureCanvas(fig).print_png(output) return Response(output.getvalue(), mimetype='image/png') def create_figure(): fig = Figure() axis = fig.add_subplot(1, 1, 1) xs = range(100) ys = [random.randint(1, 50) for x in xs] axis.plot(xs, ys) return fig 

    Entonces necesitas incluir la imagen en tu plantilla HTML:

     my plot 

    Como señaló @d parolin, la figura generada por matplotlib deberá guardarse antes de ser procesada por HTML. Para servir imágenes en un flask mediante HTML, deberá almacenar la imagen en el directorio de archivos de su flask :

     static/ images/ plot.png --> store plots here templates/ 

    Por lo tanto, en su aplicación, use plt.savefig :

     @app.route('/test') def chartTest(): lnprice=np.log(price) plt.plot(lnprice) plt.savefig('/static/images/new_plot.png') return render_template('untitled1.html', name = 'new_plot', url ='/static/images/new_plot.png') 

    Luego, en untitled1.html :

      

    http://sofes.miximages.com/flask/{{ name }}

    Chart