直方图计算数值的分布,并以柱状图的形式显示。Y 轴和每个条形图的高度代表每个括号内数值的计数,而 X 轴代表数值范围。
下面我们还是使用 mysql 作为数据源,假如存在如下数据表:
该表格的 SQL 语句如下:
CREATE TABLE `histogram_data` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `time` datetime DEFAULT NULL, `value` DECIMAL(10,7) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
表格对应的数据 SQL 如下:
INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (12, '2024-05-12 12:30:00', 31.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (13, '2024-05-13 12:30:00', 32.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (14, '2024-05-14 12:30:00', 33.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (15, '2024-05-15 12:30:00', 34.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (7, '2024-05-07 12:30:00', 41.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (8, '2024-05-08 12:30:00', 42.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (9, '2024-05-09 12:30:00', 43.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (10, '2024-05-10 12:30:00', 44.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (11, '2024-05-11 12:30:00', 45.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (3, '2024-05-03 12:30:00', 71.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (4, '2024-05-04 12:30:00', 72.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (5, '2024-05-05 12:30:00', 73.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (6, '2024-05-06 12:30:00', 74.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (16, '2024-05-16 12:30:00', 81.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (17, '2024-05-17 12:30:00', 81.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (18, '2024-05-18 12:30:00', 82.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (19, '2024-05-19 12:30:00', 83.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (1, '2024-05-01 12:30:00', 91.00); INSERT INTO `histogram_data` (`id`, `time`, `value`) VALUES (2, '2024-05-02 12:30:00', 92.00);
然后,打开 Grafana,创建一个直方图(Histogram),使用如下 SQL 语句作为直方图数据:
SELECT time, value FROM `histogram_data`
点击“”按钮,查询数据,渲染图表效果如下图:
直方图支持时间序列和带有一个或多个数值字段的任何表格结果。
使用以下选项完善可视化。
桶的大小,留空用于自动调整桶大小(约为全量程的 10%)。
如果第一个数据桶的起始值不为零。如果偏移量不为零,就会移动聚合窗口。例如,默认偏移量为 0 的 5 个大小为 0-5、5-10、10-15 的数据桶,在偏移量为 2 时就会变成 2-7、7-12、12-17;在这种情况下,偏移量为 0、5 或 10 实际上什么也做不了。通常情况下,该选项应与明确定义的邮筒大小一起使用,而不是自动使用。偏移量应大于 0 并小于水桶大小;超出此范围的值与此范围内的值效果相同。
这将把所有序列和字段合并成一个综合直方图。
控制条形图的线宽。
控制填充不透明度条。
设置渐变填充的模式。渐变填充基于线条颜色。要更改颜色,请使用标准配色方案字段选项。
渐变显示受填充不透明度设置的影响。
None:无渐变填充,这是默认设置。
Opacity:根据 Y 轴上的值计算渐变的透明度。填充的不透明度随着 Y 轴上数值的增加而增加。
Hue:渐变色根据线条颜色的色调生成。
使用这些设置可定义图例在可视化中的显示方式。
List - 以列表形式显示图例。这是图例的默认显示模式。
Table - 以表格形式显示图例。
Hidden - 隐藏图例。
选择显示图例的位置。
Bottom - 图表下方。
Right - 图表右侧。
选择要在图例中显示的标准计算,可以有多个。
选择要在图例中显示的标准计算,您可以选择多个。