I want to visualize the plot (SciView) in my Flask web project.
Here is my code:
import matplotlib.pyplot as plt
# x-coordinates of left sides of bars
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.xlabel('y - axis')
# naming the x-axis
plt.xlabel('x - axis')
# plot title
plt.title('My bar chart!')
# function to show the plot
plt.show()
I've tried running this code in my Flask project, but there is no output.
A possible solution is to save the figure with plt.savefig
and attach it to an HTML <img>
tag.
from flask import Flask, render_template
import matplotlib.pyplot as plt
app = 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%">
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.