在Python / Flask应用中实时/更新Plotly图表?

时间:2018-11-13 13:52:03

标签: python plotly

我用Flask(带有JS前端)构建了一个Webapp,现在我想添加图表来显示我的数据。

我设法在上面嵌入了图表,但是它是静态的,有没有办法使它动态化(例如,使用随机值,以便以后可以向其中添加自己的数据)?

def index():

    rng = pd.date_range('1/1/2011', periods=7500, freq='H')
    ts = pd.Series(np.random.randn(len(rng)), index=rng)

    graphs = [

        dict(
            data=[
                dict(
                    x= arr,
                    y=[10, 20, 30],
                    type='scatter'
                ),
            ],
            layout=dict(
                title='first graph'
            )
        ) 

    ]

    # Add "ids" to each of the graphs to pass up to the client
    # for templating
    ids = ['graph-{}'.format(i) for i, _ in enumerate(graphs)]

    # Convert the figures to JSON
    # PlotlyJSONEncoder appropriately converts pandas, datetime, etc
    # objects to their JSON equivalents
    graphJSON = json.dumps(graphs, cls=plotly.utils.PlotlyJSONEncoder)

    return render_template('index.html',
                           ids=ids,
                           graphJSON=graphJSON)

1 个答案:

答案 0 :(得分:1)

HTTP本质上是无状态的,因此,如果要动态化,则必须在前端进行。

在不了解您的前端的情况下,我无法提供具体示例, 但希望这能使您走上正确的轨道:

  • 通过对后端的AJAX调用以固定间隔更新图表数据。
  • 有了扩展的数据,就可以通过Plotly.extendtraces更新图表了