Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Alterne os serviços usando a lista suspensa Versão. Saiba mais sobre navegação.
Aplica-se a: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
A biblioteca de gráficos Plotly dá suporte a ~80 tipos de gráfico que são úteis para gráficos avançados, incluindo geográfico, científico, machine learning, 3d, animação e muitos outros tipos de gráfico. Para obter mais informações, consulte Plotly.
Para renderizar um visual Plotly na Linguagem de Consulta Kusto, a consulta deve gerar uma tabela com uma única célula de cadeia de caracteres contendo JSON Plotly. Essa cadeia de caracteres JSON plotada pode ser gerada por um dos dois métodos a seguir:
Escrever sua própria visualização Plotly no Python
Nesse método, você cria dinamicamente a cadeia de caracteres JSON plotada em Python usando o pacote Plotly. Esse processo requer o uso do plug-in python(). O script Python é executado nos nós existentes usando o plug-in python() embutido. Ele gera um JSON plotado que é renderizado pelo aplicativo cliente.
Todos os tipos de visualizações plotadas têm suporte.
Nota
Para obter melhor desempenho, verifique se a imagem do plug-in do Python contém a versão mais recente do mecanismo Python (atualmente 3.10.8). Verifique a versão mais recente com a função get_packages_version_fl(). Para atualizar a imagem do Python, consulte Alterar a imagem de extensões de linguagem Python em seu cluster.
Exemplo
A consulta a seguir usa o Python embutido para criar um gráfico de dispersão 3D:
OccupancyDetection
| project Temperature, Humidity, CO2, Occupancy
| where rand() < 0.1
| evaluate python(typeof(plotly:string),
```if 1:
import plotly.express as px
fig = px.scatter_3d(df, x='Temperature', y='Humidity', z='CO2', color='Occupancy')
fig.update_layout(title=dict(text="Occupancy detection, plotly 5.11.0"))
plotly_obj = fig.to_json()
result = pd.DataFrame(data = [plotly_obj], columns = ["plotly"])
```)
A biblioteca de gráficos Plotly dá suporte a ~80 tipos de gráficos, incluindo gráficos básicos, científicos, estatísticos, financeiros, mapas, 3D, animações e muito mais. Para renderizar um visual Plotly no KQL, a consulta deve gerar uma tabela com uma única célula de cadeia de caracteres contendo JSON plotado.
Como o Python não está disponível neste serviço, você cria esse JSON plotado usando um modelo pré-preparado.
Usar um modelo plotly pré-preparado
Nesse método, um JSON Plotly pré-preparado para visualização específica pode ser reutilizado substituindo os objetos de dados pelos dados necessários a serem renderizados. Os modelos podem ser armazenados em uma tabela padrão e a lógica de substituição de dados pode ser empacotada em uma função armazenada.
Atualmente, os modelos com suporte são: plotly_anomaly_fl() e plotly_scatter3d_fl(). Consulte esses documentos para sintaxe e uso.
Exemplo
let plotly_scatter3d_fl=(tbl:(*), x_col:string, y_col:string, z_col:string, aggr_col:string='', chart_title:string='3D Scatter chart')
{
let scatter3d_chart = toscalar(PlotlyTemplate | where name == "scatter3d" | project plotly);
let tbl_ex = tbl | extend _x = column_ifexists(x_col, 0.0), _y = column_ifexists(y_col, 0.0), _z = column_ifexists(z_col, 0.0), _aggr = column_ifexists(aggr_col, 'ALL');
tbl_ex
| serialize
| summarize _x=pack_array(make_list(_x)), _y=pack_array(make_list(_y)), _z=pack_array(make_list(_z)) by _aggr
| summarize _aggr=make_list(_aggr), _x=make_list(_x), _y=make_list(_y), _z=make_list(_z)
| extend plotly = scatter3d_chart
| extend plotly=replace_string(plotly, '$CLASS1$', tostring(_aggr[0]))
| extend plotly=replace_string(plotly, '$CLASS2$', tostring(_aggr[1]))
| extend plotly=replace_string(plotly, '$CLASS3$', tostring(_aggr[2]))
| extend plotly=replace_string(plotly, '$X_NAME$', x_col)
| extend plotly=replace_string(plotly, '$Y_NAME$', y_col)
| extend plotly=replace_string(plotly, '$Z_NAME$', z_col)
| extend plotly=replace_string(plotly, '$CLASS1_X$', tostring(_x[0]))
| extend plotly=replace_string(plotly, '$CLASS1_Y$', tostring(_y[0]))
| extend plotly=replace_string(plotly, '$CLASS1_Z$', tostring(_z[0]))
| extend plotly=replace_string(plotly, '$CLASS2_X$', tostring(_x[1]))
| extend plotly=replace_string(plotly, '$CLASS2_Y$', tostring(_y[1]))
| extend plotly=replace_string(plotly, '$CLASS2_Z$', tostring(_z[1]))
| extend plotly=replace_string(plotly, '$CLASS3_X$', tostring(_x[2]))
| extend plotly=replace_string(plotly, '$CLASS3_Y$', tostring(_y[2]))
| extend plotly=replace_string(plotly, '$CLASS3_Z$', tostring(_z[2]))
| extend plotly=replace_string(plotly, '$TITLE$', chart_title)
| project plotly
};
Iris
| invoke plotly_scatter3d_fl(x_col='SepalLength', y_col='PetalLength', z_col='SepalWidth', aggr_col='Class', chart_title='3D scatter chart using plotly_scatter3d_fl()')
| render plotly