当前位置: 首页 > news >正文

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
  • 当我导出我的图表时,单词的位置发生了变化。
    • 出时会重新渲染数据,这会导致单词在不同的坐标位置,而不是原始图表中的位置。
  • 出时会重新渲染数据,这会导致单词在不同的坐标位置,而不是原始图表中的位置。
    • 当前我们在词云系列中使用的默认字体没有安装在导出服务器上。
http://www.jsqmd.com/news/367616/

相关文章:

  • Qwen3-ASR-0.6B体验:无需联网的智能语音识别工具
  • 如何用 Highcharts做X-range X 轴范围图?
  • 2026工业级CRM五大品牌横评,核心优势与场景揭秘
  • MoonBit 0.8 版本正式发布
  • SDXL 1.0在灵感画廊中的性能优化指南
  • 效率翻倍:One API多机部署实现AI服务高可用
  • RDMA设计44:RoCE v2原语功能:单边语义
  • 【太阳】基于Parker太阳风解模型(含物理单位换算、密度剖面及与经验日冕模型的比较)附Matlab代码
  • 运用AI多因子模型:剖析美元疲软对黄金高位运行的托底效应
  • 告别AI工具杂乱无章:用JVS-AI统一管理模型、知识和技能。
  • 灰狼算法+粒子群+鲸鱼+蝴蝶算法优化ELM模型的锂电池SOH预测附matlab代码
  • 委托总结:委托提供了 A类的对象 调用 B类对象的同一类方法 的能力。
  • 毕业季必看:论文降ai率最全攻略,教你如何有效降低ai率
  • 企业专线与光纤宽带对比及年费用说明
  • 征程 6 | power management sample
  • 2026最新测评:关于论文降aigc那款工具最有效,内含9款降ai率工具。
  • 【claude】Claude Skills 使用小技巧:7个让AI真正“懂你“的实用窍门
  • 基于java + vue药店管理系统(源码+数据库+文档)
  • Web 性能优化:如何让你的网站加载速度提升 50%
  • Spotify上传音乐文件,电脑播放本地音乐,手机同步电脑音乐
  • ST 表
  • 全网最全!10个论文降aigc神器,支持免费降ai率【建议收藏】
  • 明湾国际学校分享:AI如何重塑科技与学习生态?
  • 告别高AI率!这几款免费降低ai率的神器,彻底解决论文降aigc难题。
  • OpenClaw 暴雷背后:Command Tools 如何终结 AI 工具的“配置地狱”(附教程)
  • 明湾“145666“密码:一所非营利双语学校的使命与探索
  • Claude提示词工程 05,告别AI幻觉:让Claude诚实回应的提示词技巧
  • 乙醇燃料精准监测中枢:MTX-D数字双功能乙醇含量百分比和燃料温度计 改装店/车队/加油站/检测站全场景实战全解
  • 9款AI降AIGC工具亲测,毕业生速存
  • 毕业党福利!9款AI降AIGC率网站实测