news 2026/9/3 0:12:22

Highcharts词云图表开发文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Highcharts词云图表开发文档

词云图

词云是一种可视化一组单词的方式,其中单词的大小和位置由其权重决定。

点击 这里 here 查看代码

需求

词云图表需要以下模块:modules/wordcloud.js.

选项

点击 这里 here 查看所有可用的词云系列选项的概述。

数据结构

每个词云系列中的点都必须包含一个 name 和一个 weight。 名称决定了在可视化中显示的文本内容,而权重 决定了其优先级。优先级最高的点会先被绘制, 并且字体会更大。

data:[{name:'Lorem',weight:3},{name:'Ipsum',weight:2},{name:'Dolor',weight:1}]

高级用法

自定义螺旋算法

螺旋用于在单词与其他单词碰撞或边界发生碰撞后,将单词移动到初始位置之外。 若要实现自定义螺旋,可以参考 archimedeanSpiral 函数,例如:

/** * archimedeanSpiral - Gives a set of coordinates for an Archimedian Spiral. * * @param {number} t How far along the spiral we have traversed. * @return {object} Resulting coordinates, x and y. */vararchimedeanSpiral=functionarchimedeanSpiral(t){t*=0.1;return{x:t*Math.cos(t),y:t*Math.sin(t)};};

螺旋算法通过将其附加到 spirals 属性上实现了访问:

Highcharts.seriesTypes.wordcloud.prototype.spirals.archimedean=archimedeanSpiral;

之后,你可以通过指定选项series<wordcloud>.spiral来使用该算法:

Highcharts.chart(...,{series:[{type:'wordcloud',spiral:'archimedean'}]});

自定义布局策略

策略用于决定单词的旋转角度和初始位置。 若要实现自定义策略,可以参考 randomPlacement 函数,例如:

varrandomPlacement=functionrandomPlacement(point,options){varfield=options.field,r=options.rotation;return{x:getRandomPosition(field.width)-(field.width/2),y:getRandomPosition(field.height)-(field.height/2),rotation:getRotation(r.orientations,r.from,r.to)};};

放置算法通过将其附加到placementStrategy属性上实现了访问:property:

Highcharts.seriesTypes.wordcloud.prototype.placementStrategy.random=randomPlacement;

之后你可以通过指定选项series<wordcloud>.placementStrategy来使用该算法:

Highcharts.chart(...,{series:[{type:'wordcloud',placementStrategy:'random'}]});

自定义字体大小

字体的大小由函数deriveFont计算得出,该函数根据单词的相对权重来确定结果。权重的范围是0到1,表示该单词相对于最大权重单词的大小。当自定义字体大小时,应注意,较大的字体可能会导致布局算法运行变慢,而较小的字体则可能使单词的排布更加分散。

// Include this snippet after loading Highcharts and before Highcharts.chart is executed.Highcharts.seriesTypes.wordcloud.prototype.deriveFontSize=function(relativeWeight){varmaxFontSize=25;// Will return a fontSize between 0px and 25px.returnMath.floor(maxFontSize*relativeWeight);};

需要注意的事项

  • 当单词以非90度倍数的角度旋转时,它们之间会有很多空隙。
    • 当前的碰撞算法没有考虑旋转,只会检查两个单词的外部区域是否碰撞。为了解决这个问题,我们可以利用 分离轴定理 Separating Axis Theorem
  • 当我导出我的图表时,单词的位置发生了变化。
    • 出时会重新渲染数据,这会导致单词在不同的坐标位置,而不是原始图表中的位置。
  • 出时会重新渲染数据,这会导致单词在不同的坐标位置,而不是原始图表中的位置。
    • 当前我们在词云系列中使用的默认字体没有安装在导出服务器上。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:32:55

SDXL 1.0在灵感画廊中的性能优化指南

SDXL 1.0在灵感画廊中的性能优化指南 1. 为什么你的灵感画廊跑得不够快&#xff1f; 如果你已经体验过灵感画廊那如艺术沙龙般的创作界面&#xff0c;但总觉得生成一张高清图片的等待时间有点长&#xff0c;或者在高分辨率下显存告急&#xff0c;那么这篇文章就是为你准备的。…

作者头像 李华
网站建设 2026/9/2 22:05:14

2026最新测评:关于论文降aigc那款工具最有效,内含9款降ai率工具。

&#x1f4a1;写论文时&#xff0c;什么最让人头疼&#xff1f; 不是查重&#xff0c;而是检测结果里赫然出现——“AI率过高”。 现在越来越多的高校开始严查论文&#xff0c;专门检测AIGC生成内容。 我曾有一篇论文AI率直接飙到98%&#xff0c;当时真的差点崩溃… 为了“救…

作者头像 李华
网站建设 2026/9/2 22:05:20

明湾国际学校分享:AI如何重塑科技与学习生态?

当今教育面临诸多挑战&#xff0c;作为一所使命驱动的深圳国际学校&#xff0c;明湾始终致力于让教育回归初心。深圳明湾学校2026年招生已全面开启&#xff01;3月17日将举办中小学开放日活动&#xff0c;3月31日将举办幼儿园开放日活动&#xff0c;诚邀大家报名参加。以下是明…

作者头像 李华
网站建设 2026/9/2 22:45:09

基于springboot + vue自习室预约系统(源码+数据库+文档)

自习室预约 目录 基于springboot vue自习室预约系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue自习室预约系统 一、前言 博主介绍&#xff1a…

作者头像 李华
网站建设 2026/9/2 9:10:53

数据湖架构中的数据一致性管理:Delta Lake实战解析

数据湖架构中的数据一致性管理&#xff1a;Delta Lake实战解析 关键词&#xff1a;数据湖、数据一致性、Delta Lake、ACID事务、版本控制、多版本并发控制&#xff08;MVCC&#xff09;、Lakehouse 摘要&#xff1a;数据湖作为企业级数据存储的“新基建”&#xff0c;正面临多用…

作者头像 李华
网站建设 2026/9/2 2:17:13

一文读懂什么是LLM(大型语言模型)

点击 “AladdinEdu&#xff0c;你的AI学习实践工作坊”&#xff0c;注册即送-H卡级别算力&#xff0c;沉浸式云原生集成开发环境&#xff0c;80G大显存多卡并行&#xff0c;按量弹性计费&#xff0c;教育用户更享超低价。 引言&#xff1a;当语言被“计算”——我们进入人机交互…

作者头像 李华