enter image description here我正在设置一个Web应用程序,我希望能够使用matplotlib和flask进行绘图。对于其中一张图,我必须使用“ plt.tight_layout()”才能读取标签。我现在的问题是,我将调整图的大小,使其在y轴上的尺寸都相同。
我正在macOS Mojave(版本10.14.4)上使用Python 2.7.16 anaconda环境。
我尝试使用以下功能: plt.rcParams [“ figure.figsize”] =(5,1) plt.figure(figsize =(5,1))
唯一起作用的功能是: plt.gcf()。set_size_inches(9.0,1.78) 但我无法手动设置
from flask import Flask, request, redirect, g, render_template
import requests
import base64
from cStringIO import StringIO
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
app = Flask(__name__)
@app.route("/callback/")
def song_analysis():
# Making a plot
img = StringIO()
plt.scatter(names,valence, color=[ 'deeppink','lightpink','lime','orange','blue','green','red','cyan','magenta','yellow','black','white','wheat', 'black', 'indigo', 'snow', 'orchid', 'steelblue', 'grey','aqua'])
plt.xticks([])
plt.tight_layout()
plt.savefig(img,format='png')
plt.close()
img.seek(0)
plot_url = base64.b64encode(img.getvalue())
img2= StringIO()
plt.scatter(names,speechiness, color=[ 'deeppink','lightpink','lime','orange','blue','green','red','cyan','magenta','yellow','black','white','wheat', 'black', 'indigo', 'snow', 'orchid', 'steelblue', 'grey','aqua'])
plt.xticks(rotation=90)
plt.tight_layout()
plt.savefig(img2,format='png')
plt.close()
img2.seek(0)
plot_url2 = base64.b64encode(img2.getvalue())
return render_template("index.html", info_name = [display_name], plot_url=plot_url, plot_url2=plot_url2)
if __name__ == "__main__":
app.run(debug=True,port=PORT)
在html文件中包括以下行:
<img src="data:image/png;base64, {{ plot_url }}" width="800">
<img src="data:image/png;base64, {{ plot_url2 }}" width="800">