是否可以在plotly的Dash框架中显示一个简单的matplotlib图(通常由plt.show()
生成的那种)?或者只是带有plotly的散点图和数据迹线的类似于plotly的图形?
具体来说,我想我需要一个不同于Graph
的组件(见下文),以及一种在update_figure
函数中返回简单绘图的方法。
示例:
import dash
import dash_core_components as dcc
import dash_html_components as html
import numpy as np
import matplotlib.pyplot as plt
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
dcc.Slider(
id='n_points',
min=10,
max=100,
step=1,
value=50,
),
dcc.Graph(id='example') # or something other than Graph?...
])
@app.callback(
dash.dependencies.Output('example', 'figure'),
[dash.dependencies.Input('n_points', 'value')]
)
def update_figure(n_points):
#create some matplotlib graph
x = np.random.rand(n_points)
y = np.random.rand(n_points)
plt.scatter(x, y)
# plt.show()
return None # return what, I don't know exactly, `plt`?
if __name__ == '__main__':
app.run_server(debug=True)
3条答案
按热度按时间6uxekuva1#
参见https://plot.ly/matplotlib/modifying-a-matplotlib-figure/,
plotly.tools
库中有一个mpl_to_plotly
函数,该函数会从matplotlib图形中返回一个plotly图形(可以返回Graph的图形属性)。编辑:刚刚注意到你问了这个问题。也许上面是一个新功能,但它是最干净的方式。
sbtkgmzw2#
如果不需要交互图,可以返回静态图(可从本帮助中找到)
r3i60tvu3#
在我的情况下,它的工作,尽管警告消息👍👍