玩转Highcharts气泡图|从散点图到气泡图:增加一个维度,数据可视化瞬间立体起来

气泡(Bubble)图表

气泡图(Bubble Chart)是一种特殊的多维数据可视化图表,它是散点图的变体,通过在二维平面上展示气泡(圆形)的位置和大小,同时呈现三个维度的数据信息。

气泡图让我们能够在传统的二维坐标系中,通过气泡的位置和大小,直观地展示三个变量之间的关系,是数据探索和分析的利器。

气泡系列在给定的x和y位置上渲染气泡,其半径与z值成比例。它是散点图scatter series的扩展形式。

气泡系列特性

就像散点系列一样,气泡系列也接受带有x和y值的数据点。但此外,它还接受第三个维度z,用以决定气泡的大小。有两种计算大小的模式。当 sizeBy设置为area时,z的值与面积成正比;当设置为width时,则与直径成正比。

应用场景

  1. 市场分析:用于展示不同产品的市场份额(X)、销售额(Y)和利润(Z),帮助决策者识别潜在的市场机会。

  2. 人口统计:可以用来展示不同地区的人口(X)、收入水平(Y)和失业率(Z),直观地反映社会经济状况。

  3. 项目管理:在项目评估中,气泡图可以显示项目的风险(X)、预算(Y)和影响程度(Z),帮助管理层做出明智的决策。

  4. 科学研究:用于展示实验数据,如药物效果(X)、副作用(Y)和受试者数量(Z),便于分析和比较不同实验条件下的数据。

气泡大小

气泡的实际大小还受到其他选项的控制:

  • minSize and maxSize 选项决定了绘制气泡的大小范围。它们可以设置为百分比(占图表区域的百分比)或绝对像素值。
  • zMin and zMax 选项决定了气泡大小应如何相对于实际的z值进行计算。
  • sizeByAbsoluteValue 决定了气泡大小在穿越z阈值 zThreshold(通常是零平面)时的处理方式。

气泡图例

气泡系列支持通过气泡图例bubble legend 模块在图例中以特殊的方式展示。

符号和形状

除了默认的圆形(也就是气泡系列的标志性形状)之外,还可以使用其他符号。这些符号可以是预定义的形状,也可以是通过 URL 加载的图片。

颜色轴

虽然气泡系列默认通过x、y和z选项呈现三维数据,但它也可以通过自定义颜色键添加第四个维度。气泡系列的默认颜色键是z,但可以更改为例如colorValue。在这种情况下,系列配置可能如下所示:

js 复制代码
series: [{
    colorKey: 'colorValue',
    data: [{
        x: 0,
        y: 81,
        z: 63,
        colorValue: 4
    }, {
        x: 98,
        y: 5,
        z: 89,
        colorValue: 32
    }, {
        x: 51,
        y: 50,
        z: 73,
        colorValue: 9
    }]
}]

在下面的示例中,添加了一个颜色轴,并且使用了 x 作为颜色的关键值。

Highcharts 气泡图 API参考

有关气泡系列选项的概述,请参阅 API reference.

相关推荐
半个落月19 分钟前
面试必问的 JS 原型链,我用 16 个示例给你彻底讲明白
javascript
丷丩36 分钟前
12. 渲染:MapLibre GL JS 集成与多源瓦片联动
javascript·矢量瓦片·maplibre gl js·地图服务器
橘子星1 小时前
别再懵圈!JS 执行机制的 “千层套路” 全揭秘
前端·javascript
拾年2751 小时前
__proto__ vs prototype:90% 的人分不清的 JavaScript 核心
前端·javascript·面试
提子拌饭1331 小时前
个人月事记录表应用 - 鸿蒙PC Electron框架完整实现指南
前端·javascript·华为·electron·前端框架·开源·鸿蒙系统
超人气王1 小时前
新手学前端JS浅拷贝和深拷贝:对象复制竟然是个“替身文学”?
javascript·面试
YHL1 小时前
📚 JS执行机制(执行上下文 + 调用栈 + 编译流程)
前端·javascript
不简说1 小时前
这次真香!sv-print 可视化打印设计器更新:插件脚手架、Excel 导出、弹窗 API 三连发
前端·javascript·前端框架
无聊的老谢1 小时前
Web GIS 最佳实践:Vue 集成 Leaflet/OpenLayers 实现基站海量点位渲染
前端·javascript·vue.js
东风破_2 小时前
V8 如何执行你的代码——编译、上下文与调用栈
javascript