在我的 Grafana (v8.2.3) 实例中,我找不到另一个回复中提到的“XY 图表”,但我发现了不同的其他选项:
-
"Scatter" Plugin by Michael Moore:可能是最简单的一个,但相当基本。
-
"Plotly" Plugin by Natel Energy:更高级,甚至还有使用Plotly(Javascript?)库的 3D 散点图(以及更多)。
-
"Plotly panel" Plugin by AE3E:使用相同的库,但这个插件比 GUI 少,多于编码接口,所以你输入 JSON 和 JavaScript 代码来生成绘图 - 更困难但也非常灵活,一旦你弄清楚它是如何实现的作品。插件和 GitHub 页面上几乎没有给出示例,因此请查看 Plotly 文档。
示例
0。安装:
所有插件的安装都类似,并在每个插件页面的“安装”选项卡中进行了描述。这可能取决于您的安装(例如,我不知道在使用 docker 时它是如何工作的),但在我的“常规”Grafana 安装的情况下,我可以将其输入控制台(例如通过 SSH):
sudo grafana-cli plugins install michaeldmoore-scatter-panel
sudo grafana-cli plugins install natel-plotly-panel
sudo grafana-cli plugins install ae3e-plotly-panel
sudo systemctl restart grafana-server
sudo systemctl status grafana-server
(选择您要安装的插件,重新启动 Grafana 服务器并检查其状态(应为绿色且没有错误)。提示: 保存仪表板以防您在重新启动 Grafana 之前进行更改,如重新启动 Grafana 服务器将删除未保存的仪表板。)
1。分散插件:
- 在 Grafana 仪表板中添加一个新面板并选择“Scatter”可视化/面板。
- 从“表格视图”开始,查看您是否收到有效结果:
- 从数据库中至少选择 2 个字段(您可以使用标签,但删除字段的聚合器/选择器)。要选择第二个字段,请点击第一个字段旁边的“+”图标,向下滚动并选择“字段 > 字段”。
- 同时删除“分组依据”。
- 格式为“表格”
您应该会在时间戳旁边看到两列。
(点击here查看大图)
现在从“表格视图”切换回图表,并在设置的右侧进行调整:
- X 轴 > X 轴字段:选择两个字段之一
- Y 轴 > 字段:选择其他字段
可能看起来像这样:
(点击here查看大图)
2。 Plotly 插件(Natel):
与 Scatter 插件类似地准备数据。可能看起来像这样:
(点击here查看大图)
(点击here查看大图)
注意:至少在我的版本中,当我更改设置时面板没有刷新。在表格和图表视图(图表上方的“表格视图”选择器)之间切换以重建面板。
3。 Plotly 面板插件 (AE3E):
与 Scatter 插件类似地准备数据。 (我还添加了在悬停数据点时在工具提示中使用的第三个字段。)
可能是这样的:
(点击here查看大图)
用于截图的代码:
数据部分:
[
{
"line": {
"color": "rgba(255,255,255,255)",
"width": 1
},
"mode": "lines",
"type": "scatter"
}
]
对于“颜色”,也可以使用“绿色”、“红色”等。使用 rgba() 时,第一个值是红色 (0-255),第二个是绿色,然后是蓝色,最后一个 alpha 通道(0 完全透明,255 完全不透明)
布局部分:
{
"annotations": [
{
"showarrow": false,
"text": "-Im{Z} [mΩ]",
"textangle": -90,
"x": -0.03,
"xanchor": "right",
"xref": "paper",
"y": 0.5,
"yanchor": "right",
"yref": "paper"
},
{
"showarrow": false,
"text": "Re{Z} [mΩ]",
"x": 0.5,
"xanchor": "top",
"xref": "paper",
"y": -0.07,
"yanchor": "top",
"yref": "paper"
}
],
"font": {
"color": "darkgrey"
},
"margin": {
"b": 40,
"t": 15
},
"paper_bgcolor": "rgba(0,0,0,0)",
"plot_bgcolor": "rgba(0,0,0,0)",
"xaxis": {
"autorange": false,
"gridcolor": "rgba(128,128,128,255)",
"range": [
0,
90
],
"type": "linear"
},
"yaxis": {
"autorange": false,
"gridcolor": "rgba(128,128,128,255)",
"range": [
-50,
20
],
"type": "linear"
},
"hovermode": "closest"
}
配置部分:(未更改)
{
"displayModeBar": false
}
脚本部分:
// console.log(data)
var trace = {
x: data.series[0].fields[1].values.buffer,
y: data.series[0].fields[2].values.buffer,
text: data.series[0].fields[3].values.buffer,
mode: 'lines+markers',
type: 'scatter',
hovertemplate: 'Re: %{x:.4f} mΩ | Im: %{y:.4f} mΩ @ %{text:.2f} Hz'
};
return {data:[trace]};
确保选择字段 1 和 2 以获得 XY 图。默认情况下,选择 0 和 1,这将产生规则的时间序列图。我包含了第三个数据集(频率)并将其添加到文本变量中,以便在悬停数据点时将其显示在工具提示中。
点击脚本部分:
// console.log(data)
window.updateVariables({query:{'var-project':'test'}, partial: true})