Python 使用Dash和Plotly绘制实时图表

Python 使用Dash和Plotly绘制实时图表

Python提供了强大的工具,如Dash和Plotly,用于创建交互式和动态可视化。使用这些工具,我们可以创建实时图表,以便实时可视化数据,这对于获得有价值的洞见至关重要。本文将探讨如何使用Python Dash和Plotly绘制实时图表。

我们将学习如何设置Dash应用程序,定义布局,并使用回调函数动态更新图表。通过充分利用Plotly的丰富可视化功能和Dash的灵活性,我们可以创建实时图表,使其能够响应不断变化的数据。无论是监控传感器数据、跟踪金融趋势还是可视化实时分析,Python Dash和Plotly都提供了一个高效的交互式图表解决方案。

如何使用Python Dash和Plotly绘制实时图表

以下是使用Python Dash和Plotly绘制实时图表的步骤:

  • 导入必要的模块 –
    • dashplotly.graph_objsdashplotly包中导入。

    • dcchtmldash 包中导入,用于创建组件。

    • OutputInputIntervaldash.dependencies 模块中导入,用于定义回调函数和更新组件。

  • 初始化 Dash 应用:

    • 创建一个 Dash 类的实例,并将其赋值给 app
      • 定义变量:
    • 定义应用的布局:
      • 使用 html.Div 组件创建应用内容的容器。

      • Div 内部添加 html.H2 组件,显示标题”实时图表”。

      • 添加 dcc.Graph 组件,使用 id“live-graph” ,显示图表。将 animate 设为 True 以启用实时更新。

      • 包含一个 dcc.Interval 组件,使用 id“graph-update” ,定义图表更新的时间间隔。

    • 定义回调函数:

      • 使用 @app.callback 装饰器指定将更新图形的函数。

      • 回调函数将graph-update组件的 n_intervals 属性作为输入。该属性表示间隔已经过去的次数。

      • 在函数内部,为x轴和y轴的值生成随机数据。在下面的程序示例中,x轴的范围是从0到9,y轴的值是0到100之间随机生成的整数。

      • 创建一个 go.Scatter 对象来表示图形的追踪。使用提供的参数自定义其外观。

      • 创建一个go.Layout对象来定义图表的布局。在这里,我们设置了标题,并根据生成的数据指定了x轴和y轴的范围。

      • 返回一个字典,其中包含代表要显示的图表的datalayout组件。

    • 运行应用程序:

      • 使用if __name__ == "__main__":块确保应用程序仅在直接执行脚本时运行(而不是作为模块导入)。

      • 在该块中,调用apprun_server方法。开始启动Dash服务器的实例。将 debug 设置为 True 用于调试目的,并指定要在其上运行服务器的 port 号。在此处,它被设置为8051。

通过按照以下步骤,我们可以使用Dash和Plotly绘制实时图形。根据您的要求,我们可以自定义图形数据、外观和布局。请记得使用以下命令安装必要的依赖项 ( dashplotly ):

pip install dash plotly

在运行程序之前。

示例

import dash
from dash import dcc, html
from dash.dependencies import Output, Input
import plotly.graph_objs as go
import random

# Initialize the Dash app
app = dash.Dash(__name__)

# Define the layout of the app
app.layout = html.Div(
   [
      html.H2("Live Graph"),
      dcc.Graph(id="live-graph", animate=True),
      dcc.Interval(id="graph-update", interval=1000, n_intervals=0),
   ]
)

# Callback function to update the graph
@app.callback(Output("live-graph", "figure"), [Input("graph-update", "n_intervals")])
def update_graph(n):
   # Generate random data
   x_data = list(range(10))
   y_data = [random.randint(0, 100) for _ in range(10)]

   # Create the graph trace
   trace = go.Scatter(
      x=x_data,
      y=y_data,
      mode="lines+markers",
      name="Data",
      line={"color": "rgb(0, 255, 0)"},
      marker={"color": "rgb(0, 255, 0)", "size": 8},
   )

   # Create the graph layout
   layout = go.Layout(
      title="Live Graph",
      xaxis=dict(range=[min(x_data), max(x_data)]),
      yaxis=dict(range=[min(y_data), max(y_data)]),
   )

   # Return the graph figure
   return {"data": [trace], "layout": layout}

if __name__ == "__main__":
   app.run_server(debug=True, port=8051)

输出

C:\Users\Tutorialspoint>python image.py
Dash is running on http://127.0.0.1:8051/

 * Serving Flask app 'image'
 * Debug mode: on

Python 使用Dash和Plotly绘制实时图表

结论

总之,Python Dash和Plotly提供了一个强大的组合,用于创建动态可视化数据的实时图表。通过按照本文中概述的步骤,我们可以轻松设置Dash应用程序,定义布局并实时更新图表。

通过自定义图表的外观和行为,Python Dash和Plotly使数据分析师和开发人员能够创建适应不断变化的数据的交互式和有洞察力的可视化。无论是用于监控、分析还是报告,这种方法为在Python中绘制实时图表提供了一种多功能解决方案。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程