58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
# based on https://gist.github.com/rduplain/1641344
|
|
|
|
import random
|
|
import io
|
|
|
|
from flask import Flask, make_response, request
|
|
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
|
|
from matplotlib.figure import Figure
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route('/')
|
|
def root() :
|
|
return "<form action='/plot.png' method='post'><input type='text' name='data'><input type='submit' value='submit'>"
|
|
|
|
@app.route('/plot.png', methods = ['GET', 'POST'])
|
|
def plot() :
|
|
fig = Figure()
|
|
axis = fig.add_subplot(1, 1, 1)
|
|
|
|
if request.method == 'GET' :
|
|
xs = range(100)
|
|
ys = [random.randint(1, 50) for x in xs]
|
|
|
|
if request.method == 'POST' :
|
|
ys = map( float, request.form['data'].strip().split(',') )
|
|
xs = range(len(ys))
|
|
|
|
axis.plot(xs, ys)
|
|
canvas = FigureCanvas(fig)
|
|
output = io.BytesIO()
|
|
canvas.print_png(output)
|
|
response = make_response(output.getvalue())
|
|
response.mimetype = 'image/png'
|
|
return response
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True, port=5002)
|
|
|
|
# from flaskapp import *
|
|
# from plots import Cijferlijst
|
|
|
|
# import matplotlib.pyplot as plt
|
|
# from datetime import datetime
|
|
# import matplotlib.dates as mdates
|
|
|
|
# if __name__ == "__main__":
|
|
# cf = Cijferlijst()
|
|
# data = cf.GetSubjectByYear("godsdienst", "2010/2011")
|
|
|
|
# #Get dates and convert them to actual dates
|
|
# x = data['Datum invoer(Voortgangsdossier)']
|
|
# x = [datetime.strptime(date, "%d-%m-%Y") for date in x]
|
|
|
|
# y = data['Cijfer(Voortgangsdossier)']
|
|
# y = [float(line.replace(",", ".")) for line in y]
|
|
# RunWeb() |