如何使用 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代码中观察到,你正在传递数据帧对象,该值期望它是标量值。
下面是对我有用的
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:
Output of Json is :