前端如何实现词云效果?
今天来分享 6 个超实用的词云库,以快速实现词云效果!
wordcloud2.jswordcloud2.js 是一个基于 HTML5 Canvas 的词云库,主要用于生成词云效果。它的特点包括:
可以在浏览器和 Node.js 环境下运行。支持文本颜色、字体大小、旋转等多种自定义选项。可以生成 SVG 矢量图形,从而支持高分辨率或放大后不失真。支持灵活的数据源类型:使用数组、JSON 数据、URL 或回调函数来提供词频数据。使用方式如下:
(相关资料图)
npm install wordcloud代码中引入 wordcloud2.js 库文件,并创建一个 2D 画布或 HTML 容器元素,并用 id 或 class 属性给它取一个唯一标识符;
import WordCloud from "wordcloud";使用 WordCloud 对象进行词云的生成和渲染。其中,第一个参数是上一步中创建的容器元素,第二个参数是一个设置选项的对象,其中list属性是一个按照[ ["foo", 12], ["bar", 6]]格式排列的二维数组,表示每个单词及其权重。
WordCloud(document.getElementById("myCanvas"), { list: [ ["foo", 12], ["bar", 6], // ... ], // 其他自定义选项});
Github:https://github.com/timdream/wordcloud2.js
echarts-wordcloudecharts-wordcloud 是基于 echarts.js 和 wordcloud2.js 的插件,用于在 echarts 可视化图表中创建词云。它的特点包括:
能够和 echarts.js 完美融合,使用起来非常方便。支持自定义词云的颜色、形状、布局和样式等多种设置。提供了灵活的数据源类型:支持 JSON 数据和顺序数组等格式,也可以使用回调函数来动态生成数据。支持事件处理和动画效果,可以让词云更加生动有趣。使用方式如下:
在项目中安装 echarts 和 echarts-wordcloud 两个包:npm i echarts echarts-wordcloud --save在项目中引入 echarts 和 echarts-wordcloud:
import * as echarts from "echarts";import "echarts-wordcloud";使用 echarts-wordcloud 生成和渲染词云:
const chartDom = document.getElementById("chart");const myChart = echarts.init(chartDom);const option = { series: [{ type: "wordCloud", shape: "circle", gridSize: 10, // ... }]};myChart.setOption(option);
Github:https://github.com/ecomfe/echarts-wordcloud
d3-cloudd3-cloud是一个基于 D3.js 和 HTML5 Canvas绘制输出的开源词云实现。它的特点包括:
采用无序布局,可以通过在一个范围内放置文本片段来生成词云。可以使用不同的旋转角度和字体大小将单个文本片段放置在页面上。可以使用不同的颜色和透明度更改词云文本的外观。可以调整词云算法以根据不同的权重对词语进行排序,使更重要的词语显示更大,不重要的词语显示更小。使用方式如下:
在终端中键入以下命令来安装d3-cloud:npm install d3-cloud安装完成后,在项目中导入d3-cloud:
import * as d3 from "d3";import * as cloud from "d3-cloud";创建一个容器老包含词云
在JavaScript文件中,使用以下方式处理数据并生成词云:
const data = [ {text: "apple", size: 32}, {text: "orange", size: 24}, {text: "banana", size: 16}, {text: "watermelon", size: 8}, {text: "grape", size: 4},];const layout = d3.layout.cloud() .size([800, 600]) .words(data) .padding(5) .rotate(function() { return ~~(Math.random() * 2) * 90; }) .font("Impact") .fontSize(function(d) { return d.size; }) .on("end", draw);layout.start();function draw(words) { d3.select("#wordcloud") .append("svg") .attr("width", layout.size()[0]) .attr("height", layout.size()[1]) .append("g") .attr("transform", "translate(" + layout.size()[0] / 2 + "," + layout.size()[1] / 2 + ")") .selectAll("text") .data(words) .enter().append("text") .style("font-size", function(d) { return d.size + "px"; }) .style("font-family", "Impact") .style("fill", function(d, i) { return d3.schemeCategory10[i % 10]; }) .attr("text-anchor", "middle") .attr("transform", function(d) { return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")"; }) .text(function(d) { return d.text; });};
Github:https://github.com/jasondavies/d3-cloud
react-tagcloudreact-tagcloud 是一个基于 React 框架的标签云组件,用于在应用中呈现具有不同字体大小和颜色的标签。它的特点包括:
易用性:提供了简单易用的API,可以方便地在React项目中使用。可定制性:提供了多种自定义选项,可以自定义标签云的颜色、大小、字体、旋转角度等。响应式设计:支持响应式设计,可以自适应不同的屏幕大小。支持多种数据源:支持从数组、对象、URL等多种数据源中获取标签数据。使用方式如下:
在终端或命令行工具中输入以下命令来安装 react-tagcloud:npm install react-tagcloud在 JavaScript 文件中,导入 react-tagcloud 并使用:
import ReactTagCloud from "react-tagcloud";const data = [ { value: "React", count: 25 }, { value: "JavaScript", count: 18 }, { value: "Nodejs", count: 30 }, ...];const options = { //其他 options 设置};//渲染标签云
Github:https://github.com/madox2/react-tagcloud
VueWordCloudVueWordCloud 是一个基于 Vue.js 的词云组件库。它的特点包括:
支持关键词权重:支持自定义关键词的权重,从而可以根据关键词的重要性来调整词云的显示效果。自定义样式:提供了多个选项,可以自定义词云的样式和颜色。支持缩放:持对词云进行缩放和平移,从而可以查看更详细的数据。支持筛选:支持按照关键词进行筛选,从而可以快速查找感兴趣的内容。使用方式如下:
在终端中运行以下命令来安装 VueWordCloud:npm install vuewordcloud在项目中引入 VueWordCloud 组件:
import Vue from "vue";import VueWordCloud from "vuewordcloud";Vue.component("VueWordCloud", VueWordCloud);5 ? "RoyalBlue" : "Indigo"" font-family="Roboto"/>
在上面的代码中,"options" 是传递给 VueWordCloud 组件的词云选项,可以根据需要自定义这些选项。
Github:https://github.com/SeregPie/VueWordCloud
react-d3-cloudreact-d3-cloud 是一个使用 d3-cloud 构建的词云 React 组件。
使用方式如下:
在终端中运行以下命令来安装 react-d3-cloud:npm install react-d3-cloud在 React 组件中使用 :
import React from "react";import { render } from "react-dom";import WordCloud from "react-d3-cloud";import { scaleOrdinal } from "d3-scale";import { schemeCategory10 } from "d3-scale-chromatic";const data = [ { text: "Hey", value: 1000 }, { text: "lol", value: 200 }, { text: "first impression", value: 800 }, { text: "very cool", value: 1000000 }, { text: "duck", value: 10 },];const schemeCategory10ScaleOrdinal = scaleOrdinal(schemeCategory10);render(Math.log2(word.value) * 5} spiral="rectangular" rotate={(word) => word.value % 360} padding={5} random={Math.random} fill={(d, i) => schemeCategory10ScaleOrdinal(i)} notallow={(event, d) => { console.log(`onWordClick: ${d.text}`); }} notallow={(event, d) => { console.log(`onWordMouseOver: ${d.text}`); }} notallow={(event, d) => { console.log(`onWordMouseOut: ${d.text}`); }} />, document.getElementById("root"));
Github:https://github.com/Yoctol/react-d3-cloud
标签:
相关文章
前端如何实现词云效果?
今天来分享6个超实用的词云库,以快速实现词云效果!wordcloud2 jswordcloud2 js是一个基于HTML5Canvas的词云库,主要
全球消息!月上柳梢头人约黄昏后是什么节日
诗句“月上柳梢头,人约黄昏后”是元宵节。此诗句,为环境描绘:明月皎皎,垂柳依依,出自北宋诗人欧阳修的《生查子·元夕》。此诗含蓄地表...
中方呼吁国际社会对索马里安全过渡加大关注
新华社联合国3月22日电中国常驻联合国代表团临时代办戴兵22日说,索马里安全形势依然动荡,国际社会应加大关注,向非洲联盟驻索马里过渡特派团
全麦面包的热量一般多少_全麦面包的热量
1、全麦面包的热量值为:热量:246卡 100g,1片全麦面包(36 0克)含有热量89大卡,需要散步61 4分钟消耗完
环球观天下!盘点9个令人“闻风丧胆”的饮酒习俗,您经历过几个?
由于平台修改了推送规则,如果不想错过酒业网,记得读完点一下“在看”,这样每次新文章推送才会第一时间出现在你的订阅列表里。俗话说“十...
全部DNF称号获得方法_环球今热点
用购买的手段获得,或者完成任务得到。在拍卖行和其他玩家手上购买称号,一般来讲这些称号都是以前留下了或者最近的节日套的称号,价格不菲。
当前资讯!三星新材:控股股东将变更为金玺泰
三星新材(603578)公告,金玺泰与杨敏、杨阿永签署了《控制权转让框架协议》《表决权放弃协议》《股份转让协议》,金玺泰
英姿飒爽_英姿
今天小编肥嘟来为大家解答以上的问题。英姿飒爽,英姿相信很多小伙伴还不知道,现在让我们一起来看看吧!1、英姿飒爽(yīngzīsàshuǎng)解
t55坦克价格_t55坦克 环球实时
1、该坦克装有1台横置在车体后部的B2型4冲程12V60°水冷柴油机,在2000r min时标定功率为382kW(520
订火车票提前几天
1、火车票可以提前30天购买或者28天购买。2、在网上购买可以提前30天买,但是发车那一天也计算在内,也就是说提前购买车票的时间也算是29天,
网友晒扬州炒饭雪糕和老干妈雪糕 网友:甜口还是咸口?
3月22日消息,有网友在社交平台上称,他居然买到了扬州炒饭雪糕和老干妈雪糕,这个问题也不禁让许多网友发起疑问,这雪糕是甜口还是咸口?光听
今日热闻!遗嘱被确认无效后,怎么继承遗产?-世界速看
在现实生活中,许多老人会在自己临终前通过遗嘱的形式将自己的财产先进行分配好,避免死后自己的遗产并不是按照自己的意愿来分配
世界要闻:文旅部:提振行业发展信心成为今年市场管理工作的首要任务
文旅部网站3月22日消息,3月21日至22日上午,2023年全国文化和旅游市场管理工作会议在广州召开。会议强调,开年以来
2023年马尼拉国际车展全部定于今年四月形象 热点
2022年对于汽车制造商和活动组织者来说是重要的一年,因为它标志着车展的回归。事实上,2022年马尼拉国际车展(MIAS
天天热推荐:自考大专哪个专业好考过_自考大专哪个专业好考
1、金融学:本专业培养具有良好综合素质,具备金融学理论基础,系统掌握银行、证券等专业知识和基本技能,能在各类银行与非银行
天天饮食屈浩做菜视频_天天饮食屈浩专辑 快消息
1、梅菜扣肉主料五花肉1000克梅干菜250克辅料生抽50毫升老抽20毫升冰糖20克腐乳汁20毫升梅菜扣肉的做法
当前头条:金山办公 2022 年订阅收入 27.42 亿元同比增长 43.45%,WPS Office 月活设备 5.73 亿
IT之家3月21日消息,金山办公今日正式公布了2022年年报。报告期内,公司营收和净利润实现双增长,营业收入38 85亿元,同比增长18 44%;归属于
全球今热点:众泰汽车:截至3月20日,公司股东人数为13.8万人左右
众泰汽车(000980)03月21日在投资者关系平台上答复了投资者关心的问题。投资者:你好,请问截止目前,众泰股东数多少?谢谢众泰汽车董秘:您好
健康科普丨成人高脂血症食养原则和建议(二)
食物多样,蛋白质和膳食纤维摄入充足在控制总能量及脂肪的基础上,选择食物多样的平衡膳食模式,食物每天应不少于12种,每周不少于25种。碳水
前中超门将爆料赌球细节:中超全是假球,李铁也有份儿
本次公安机关的抓赌行动出现后,不少球迷表示抓得好,中国足球的确到了刮骨疗毒的节点,应该再加大力度,争取拽出萝卜带出泥。
当前视点!王彦霖艾佳妮宣布结婚 具体是怎么回事
今天来回顾关于王彦霖艾佳妮宣布结婚具体是怎么回事的文章,希望对各位小伙伴们有所帮助。【王彦霖艾佳妮宣布结婚具体是怎么
【世界时快讯】windows三维弹球下载_三维弹球作弊码
1、游戏开始后先不要发球,键入“rmax”直接进入下一关;键入“bmax”得到无限弹珠;键入“hiddentest”(中间有空格,不含引号)可用鼠标拖拽弹珠。
世界时讯:云草堂养根育发固发洗发露价格(云草堂)
1、有的。2、传承植物草本养发配方,采用现代化高新技术萃取生姜、何首乌、芝麻、月桂植物精华等研制而成,能臻护头皮,赋予头皮更多滋养,改