Below is my code
running on windows 10
saved below code to a file, namely testflask.py
import pandas as pd
import matplotlib.pyplot as plt
from flask import Flask, send_file, make_response, render_template
#from flask_ngrok import run_with_ngrok
import io
app = Flask(__name__)
#run_with_ngrok(app)
@app.route("/")
def home():
dates = ['2010-11', '2011-12', '2012-13', '2013-14', '2014-15', '2015-16', '2016-17']
steps = [9000, 9500.756, 9800.859, 10000.262, 9800.972, 10500.058, 11300.703]
df= pd.DataFrame(
{'date': dates, 'steps': steps})
fig, axes = plt.subplots(nrows=1, ncols=1)
major_xtick=[2,3,4,5,6,7]
major_xticklabel=['2010-11','2011-12','2012-13','2013-14','2014-15','2015-16','2016-17']
color=['blue','green','blue']
ax=df.plot(ax=axes,figsize=(10,8),linewidth=2,marker='o',xlabel="Year" \
,ylabel="steps" \
,title="2dline plot" \
,xlim=(0,8),ylim=(2000,15000) \
, color=color)
ax.set_xticks(major_xtick)
ax.set_xticklabels(major_xticklabel)
ax.legend()
bytes_image = io.BytesIO()
plt.savefig(bytes_image, format='png')
bytes_image.seek(0)
bytes_obj = bytes_image #do_plot()
# return render_template('create_plot.html', pfile='abc')
# return "<h3> {{ pfile }} is successfully created</h3>"
return send_file(bytes_obj,
attachment_filename='plot.png',
mimetype='image/png')
#if __name__ == '__main__':
# app.run(debug=False)
# app.run()
opened anaconda prompt changed directory to the exact place, then ran below
set FALSK_APP =testflask.py
Then ran the flask command
flask run
Upon this it gives a localhost link if we use that we get erorr as
AttributeError: 'Line2D' object has no property 'xlabel'
This code had worked perfectly from Google Colab using flask_ngrok
so not sure what am I missing here on my local. The Only difference is when tried on Google colab I had put the app.run
instruction inside the __main__
, whereas in my local I am using the run externally. As the case is I wish to keep the run external.
My local env version details are below
Flask==1.1.2
Python 3.6.8 :: Anaconda, Inc.
Just for reference, it seems that
xlabel
andylabel
have been added to DataFrame.plot between pandas 1.0.5 and 1.2.0:https://pandas.pydata.org/pandas-docs/version/1.0.5/reference/api/pandas.DataFrame.plot.html (no xlabel)
https://pandas.pydata.org/pandas-docs/version/1.2.0/reference/api/pandas.DataFrame.plot.html (with xlabel)
So it could simply be linked to different pandas versions.