提问人:code_byakko 提问时间:11/16/2023 更新时间:11/16/2023 访问量:23
如何将yfinance的python图形输出直接导入HTML网页?
How to get python graph output from yfinance into HTML webpage directly?
问:
我正在为这个项目开发 Python Flask。我一直在使用不同的软件包来制作股票图(Plotly 和 Finplot)。我对前端的东西还是陌生的。不知道为什么图形没有输出。我不确定使用 matplotlib 在 HTML 页面中显示图形是否会有更好的结果。
到目前为止,这是我的 python 代码的一部分:
@app.route("/plot", methods=['GET', 'POST'])
def generate_plot():
yf.pdr_override() # Not sure if I need this for datareader
if request.method == 'POST':
form = request.form
if('ticker' in form):
ticker = form['ticker'] # When users select a ticker from my dropdown list
ticker = ticker.upper()
# Eg. yfinance downloads a table of AAPL period of 1 day and interval of 1 year.
df = yf.download(tickers=ticker,period='1d',interval='1y')
fig = go.Figure()
fig.add_trace(go.Line(x=df.index,
open=df['Open'],
high=df['High'],
low=df['Low'],
close=df['Close'], name = 'market data'))
fig.update_layout(
title= str(stock)+' Live Share Price:',
yaxis_title='Stock Price (USD per Shares)')
fig.update_xaxes(
rangeslider_visible=True,
rangeselector=dict(
buttons=list([
dict(count=15, label="15m", step="minute", stepmode="backward"),
dict(count=45, label="45m", step="minute", stepmode="backward"),
dict(count=1, label="HTD", step="hour", stepmode="todate"),
dict(count=3, label="3h", step="hour", stepmode="backward"),
dict(step="all")
])
)
)
fig.write_image('static/images/plot.png') # Save the png and then supply the path to the file in the html
# return base64.b64encode(img.getvalue()) # I was trying encode the img to base64 format.
@app.route("/")
def index():
# we will use Flask's render_template method to render a website template.
plot_path = generate_plot()
return render_template("stock.html", plot_graph=plot_path)
我的HTML代码:
<body>
<div>
<img src="static/images/plot.png" alt="Plot">
</div>
</body>
- 我尝试直接保存图像。我以为网页会显示图片,但图表不会出现。
- 我尝试将图形编码为 base64 并将其输出为 HTML 文件。与直接保存图像的结果相同。
- 我尝试使用finplot屏幕截图功能,但图表没有出现。
答: 暂无答案
评论