如何使用 - Plotly Graph Objects 库 - 在 Azure 数据资源管理器中绘制仪表图

问题描述 投票:0回答:1

如何使用 Plotly Graph Objects Python 库在 Azure 数据资源管理器仪表板中绘制仪表图

Kusto(带有 Python 插件)可在 Azure 数据资源管理器仪表板中使用 Plotly Express 库绘制 Python Plotly 图表(例如条形图或散点图)。

但是,Plotly Express 无法 绘制仪表图。因此,需要使用Graph Objects库。

此 ADX 代码确实有效(值硬设置为 250):

['table']
| where abs(Prsr1IoTVal) >= 1 
| top 1 by IoTEventDateTime
| project  Pressure1Value=round(Prsr1IoTVal)
| evaluate python(typeof(plotly:string),
```if 1:
    import plotly.graph_objects as go
    fig = go.Figure(go.Indicator(
        mode = "gauge+number",
        value = 250,
        domain = {'x': [0, 1], 'y': [0, 1]},
        title = {'text': "Speed"}))
    plotly_obj = fig.to_json()
    result = pd.DataFrame(data = [plotly_obj], columns = ["plotly"])
```)

但是,我们尝试将该值设置为从 Kusto 表传入的值 - 没有返回任何行(即使我们知道 Kusto 查询确实返回一个值):

['glualwndpwriotevents-target-tbl']
| where abs(Prsr1IoTVal) >= 1 
| top 1 by IoTEventDateTime
| project  Pressure1Value=round(Prsr1IoTVal)*100
| evaluate python(typeof(plotly:string),
```if 1:
    import plotly.graph_objects as go
    fig = go.Figure(
                    data=[go.Indicator(
                                mode = "gauge+number",
                                value = df['Pressure1Value']
                                domain = {'x': [0, 1], 'y': [0, 1]},
                                title = {'text': "Speed"}
                                )
                        ]
                    )
    plotly_obj = fig.to_json()
    result = pd.DataFrame(data = [plotly_obj], columns = ["plotly"])
```)

有什么建议吗?

谢谢。

python-3.x plotly plotly-python azure-data-explorer
1个回答
0
投票

我已经在我的环境中重现了,以下是我的预期结果:

我从你的查询或Python代码中观察到,你正在传递数据帧对象,该值期望它是标量值。

下面是对我有用的

KQL query
(稍微修改了您的查询):

rithtable
|project Name,Age
| evaluate python(typeof(plotly:string),
```if 1:
    import plotly.graph_objects as go
    value = df['Age'].iloc[0]
    fig = go.Figure(
                    data=[go.Indicator(
                                mode = "gauge+number",
                                value = value,
                                domain = {'x': [0, 1], 'y': [0, 1]},
                                title = {'text': "Speed"}
                                )
                        ]
                    )
    plotly_obj = fig.to_json()
    result = pd.DataFrame(data = [plotly_obj], columns = ["plotly"])
```)

Output:

enter image description here

Output of Json is :

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.