首页 >> 大全

前端如何实现词云效果?

2023-06-19 大全 56 作者:考证青年

使用 对象进行词云的生成和渲染。其中,第一个参数是上一步中创建的容器元素,第二个参数是一个设置选项的对象,其中 list 属性是一个按照 [ ['foo', 12], ['bar', 6]] 格式排列的二维数组,表示每个单词及其权重。

今天来分享 6 个超实用的词云库,以快速实现词云效果!

.js

.js 是一个基于 HTML5 的词云库,主要用于生成词云效果。它的特点包括:

使用方式如下:

打开终端命令行工具,进入项目目录。执行以下命令来安装 .js:

npm install wordcloud

代码中引入 .js 库文件,并创建一个 2D 画布或 HTML 容器元素,并用 id 或 class 属性给它取一个唯一标识符;

import WordCloud from 'wordcloud';

使用 对象进行词云的生成和渲染。其中,第一个参数是上一步中创建的容器元素,第二个参数是一个设置选项的对象,其中list属性是一个按照[ ['foo', 12], ['bar', 6]]格式排列的二维数组,表示每个单词及其权重。

WordCloud(document.getElementById('myCanvas'), {list: [['foo', 12],['bar', 6],// ...],// 其他自定义选项
});

-

- 是基于 .js 和 .js 的插件,用于在 可视化图表中创建词云。它的特点包括:

使用方式如下:

在项目中安装 和 - 两个包:

npm i echarts echarts-wordcloud --save

在项目中引入 和 -:

import * as echarts from 'echarts';
import 'echarts-wordcloud';

使用 - 生成和渲染词云:

const chartDom = document.getElementById('chart');
const myChart = echarts.init(chartDom);const option = {series: [{type: 'wordCloud',shape: 'circle',gridSize: 10,// ...}]
};myChart.setOption(option);

d3-cloud

d3-cloud是一个基于 D3.js 和 HTML5 绘制输出的开源词云实现。它的特点包括:

使用方式如下:

在终端中键入以下命令来安装d3-cloud:

npm install d3-cloud

安装完成后,在项目中导入d3-cloud:

import * as d3 from 'd3';
import * as cloud from 'd3-cloud';

创建一个容器老包含词云

在文件中,使用以下方式处理数据并生成词云:

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; });
};

react-

react- 是一个基于 React 框架的标签云组件,用于在应用中呈现具有不同字体大小和颜色的标签。它的特点包括:

使用方式如下:

在终端或命令行工具中输入以下命令来安装 react-:

复制

npm install react-tagcloud

在 文件中,导入 react- 并使用:

import ReactTagCloud from 'react-tagcloud';const data = [{ value: 'React', count: 25 },{ value: 'JavaScript', count: 18 },{ value: 'Nodejs', count: 30 },...
];const options = {//其他 options 设置
};//渲染标签云

是一个基于 Vue.js 的词云组件库。它的特点包括:

使用方式如下:

在终端中运行以下命令来安装 :

npm install vuewordcloud

在项目中引入 组件:

import Vue from 'vue';
import VueWordCloud from 'vuewordcloud';Vue.component('VueWordCloud', VueWordCloud);

在上面的代码中,'' 是传递给 组件的词云选项,可以根据需要自定义这些选项。

react-d3-cloud

react-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')
);

tags: react

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了