如何解决AttributeError:“ Line2D”对象没有属性“ xlabel”
下面是我的代码
在Windows 10上运行
将以下代码保存到文件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','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,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()
打开anaconda提示将目录更改为正确的位置,然后在下面运行
set FALSK_APP =testflask.py
然后运行flask命令
flask run
如果使用erorr作为,它会给出一个本地主机链接
AttributeError: 'Line2D' object has no property 'xlabel'
此代码已使用flask_ngrok
在Google Colab上完美运行,因此不确定我本地缺少什么。唯一的区别是,在Google colab上尝试时,我已将app.run
指令放在__main__
内,而在本地,我在外部使用run。既然如此,我希望保持外部运行。
我的本地环境版本详细信息如下
Flask==1.1.2
Python 3.6.8 :: Anaconda,Inc.
解决方法
仅供参考,似乎 xlabel
和 ylabel
已添加到 Pandas 1.0.5 和 1.2.0 之间的 DataFrame.plot 中:
https://pandas.pydata.org/pandas-docs/version/1.0.5/reference/api/pandas.DataFrame.plot.html(无 xlabel)
https://pandas.pydata.org/pandas-docs/version/1.2.0/reference/api/pandas.DataFrame.plot.html(带 xlabel)
所以它可以简单地链接到不同的熊猫版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。