成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端如何實現詞云效果?

開發 前端
3. 使用 WordCloud 對象進行詞云的生成和渲染。其中,第一個參數是上一步中創建的容器元素,第二個參數是一個設置選項的對象,其中 list 屬性是一個按照 [ ['foo', 12], ['bar', 6]] 格式排列的二維數組,表示每個單詞及其權重。

今天來分享 6 個超實用的詞云庫,以快速實現詞云效果!

wordcloud2.js

wordcloud2.js 是一個基于 HTML5 Canvas 的詞云庫,主要用于生成詞云效果。它的特點包括:

  • 可以在瀏覽器和 Node.js 環境下運行。
  • 支持文本顏色、字體大小、旋轉等多種自定義選項。
  • 可以生成 SVG 矢量圖形,從而支持高分辨率或放大后不失真。
  • 支持靈活的數據源類型:使用數組、JSON 數據、URL 或回調函數來提供詞頻數據。

使用方式如下:

  1. 打開終端命令行工具,進入項目目錄。執行以下命令來安裝 wordcloud2.js:

npm install wordcloud

  1. 代碼中引入 wordcloud2.js 庫文件,并創建一個 2D 畫布或 HTML 容器元素,并用 id 或 class 屬性給它取一個唯一標識符;

import WordCloud from 'wordcloud';

<canvas id="myCanvas"></canvas>

  1. 使用 WordCloud 對象進行詞云的生成和渲染。其中,第一個參數是上一步中創建的容器元素,第二個參數是一個設置選項的對象,其中 list 屬性是一個按照 [ ['foo', 12], ['bar', 6]] 格式排列的二維數組,表示每個單詞及其權重。

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

圖片

Github:https://github.com/timdream/wordcloud2.js

echarts-wordcloud

echarts-wordcloud 是基于 echarts.js 和 wordcloud2.js 的插件,用于在 echarts 可視化圖表中創建詞云。它的特點包括:

  • 能夠和 echarts.js 完美融合,使用起來非常方便。
  • 支持自定義詞云的顏色、形狀、布局和樣式等多種設置。
  • 提供了靈活的數據源類型:支持 JSON 數據和順序數組等格式,也可以使用回調函數來動態生成數據。
  • 支持事件處理和動畫效果,可以讓詞云更加生動有趣。

使用方式如下:

  1. 在項目中安裝 echarts 和 echarts-wordcloud 兩個包:

npm i echarts echarts-wordcloud --save

  1. 在項目中引入 echarts 和 echarts-wordcloud:

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

  1. 使用 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-cloud

d3-cloud是一個基于 D3.js 和 HTML5 Canvas繪制輸出的開源詞云實現。它的特點包括:

  • 采用無序布局,可以通過在一個范圍內放置文本片段來生成詞云。
  • 可以使用不同的旋轉角度和字體大小將單個文本片段放置在頁面上。
  • 可以使用不同的顏色和透明度更改詞云文本的外觀。
  • 可以調整詞云算法以根據不同的權重對詞語進行排序,使更重要的詞語顯示更大,不重要的詞語顯示更小。

使用方式如下:

  1. 在終端中鍵入以下命令來安裝d3-cloud:

npm install d3-cloud

  1. 安裝完成后,在項目中導入d3-cloud:

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

  1. 創建一個容器老包含詞云

<div id="wordcloud"></div>

  1. 在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-tagcloud

react-tagcloud 是一個基于 React 框架的標簽云組件,用于在應用中呈現具有不同字體大小和顏色的標簽。它的特點包括:

  • 易用性:提供了簡單易用的API,可以方便地在React項目中使用。
  • 可定制性:提供了多種自定義選項,可以自定義標簽云的顏色、大小、字體、旋轉角度等。
  • 響應式設計:支持響應式設計,可以自適應不同的屏幕大小。
  • 支持多種數據源:支持從數組、對象、URL等多種數據源中獲取標簽數據。

使用方式如下:

  1. 在終端或命令行工具中輸入以下命令來安裝 react-tagcloud:

npm install react-tagcloud

  1. 在 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 設置
};

//渲染標簽云
<ReactTagCloud tags={data} minSize={12} maxSize={35} colorOptinotallow={options} />

圖片

Github:https://github.com/madox2/react-tagcloud

VueWordCloud

VueWordCloud 是一個基于 Vue.js 的詞云組件庫。它的特點包括:

  • 支持關鍵詞權重:支持自定義關鍵詞的權重,從而可以根據關鍵詞的重要性來調整詞云的顯示效果。
  • 自定義樣式:提供了多個選項,可以自定義詞云的樣式和顏色。
  • 支持縮放:持對詞云進行縮放和平移,從而可以查看更詳細的數據。
  • 支持篩選:支持按照關鍵詞進行篩選,從而可以快速查找感興趣的內容。

使用方式如下:

  1. 在終端中運行以下命令來安裝 VueWordCloud:

npm install vuewordcloud

  1. 在項目中引入 VueWordCloud 組件:

import Vue from 'vue';
import VueWordCloud from 'vuewordcloud';

Vue.component('VueWordCloud', VueWordCloud);


<vue-word-cloud
style="
height: 480px;
width: 640px;
"
:words="[['romance', 19], ['horror', 3], ['fantasy', 7], ['adventure', 3]]"
:color="([, weight]) => weight > 10 ? 'DeepPink' : weight > 5 ? 'RoyalBlue' : 'Indigo'"
font-family="Roboto"
/>

在上面的代碼中,'options' 是傳遞給 VueWordCloud 組件的詞云選項,可以根據需要自定義這些選項。

圖片

Github:https://github.com/SeregPie/VueWordCloud

react-d3-cloud

react-d3-cloud 是一個使用 d3-cloud 構建的詞云 React 組件。

使用方式如下:

  1. 在終端中運行以下命令來安裝 react-d3-cloud:

npm install react-d3-cloud

  1. 在 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(
<WordCloud
data={data}
width={500}
height={500}
fnotallow="Times"
fnotallow="italic"
fnotallow="bold"
fnotallow={(word) => 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

責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2022-12-12 11:11:05

2020-06-14 09:04:00

前端云計算無服務器

2012-05-09 14:49:23

HTML5

2024-04-24 11:09:12

Android圖標

2025-05-29 06:48:51

前端偽3D

2022-11-23 10:22:12

組件庫前端

2022-01-28 14:20:53

前端代碼中斷

2023-03-28 08:05:37

2011-04-25 14:45:38

2022-11-24 16:11:27

2020-06-15 10:45:49

云計算自治系統冠狀病毒

2010-09-08 12:49:16

CSS斜線

2021-05-19 06:07:21

CSS 斜線效果技巧

2017-03-06 15:01:38

Python代碼詞云

2022-12-01 17:46:53

網頁變灰功能前端

2011-07-08 10:15:15

IPhone 動畫

2025-05-06 00:00:10

2023-06-20 19:57:13

2010-04-12 10:06:25

云計算
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频一区二区 | 最新中文字幕在线 | 国产精品成人一区二区三区夜夜夜 | 日韩中文字幕一区二区 | 影视先锋av资源噜噜 | 狠狠操天天干 | 99热精品在线观看 | 国产一级一级毛片 | 一区二区三区回区在观看免费视频 | 欧美一级免费 | 操操日 | 久久中文视频 | 日韩蜜桃视频 | 亚洲成av人影片在线观看 | 天天看片天天干 | 亚洲欧美视频一区 | 久久精品久久久久久 | 精品乱码一区二区 | 成年人在线观看 | 欧美成人一区二区 | 九色porny自拍视频 | 亚洲国产精品成人 | 91久久精品一区二区二区 | 九九视频在线观看 | 第一色在线 | 国产免费一区二区三区 | 久久99精品久久久久久秒播九色 | 91精品亚洲 | 成人精品一区亚洲午夜久久久 | 成人在线免费观看视频 | 久久久999国产精品 中文字幕在线精品 | 一区二区中文字幕 | 一区二区三区四区在线视频 | 天天操妹子 | 日韩欧美三级 | 久久亚洲综合 | 久久国产一区 | 久久大陆| 99精品免费久久久久久日本 | 性高朝久久久久久久3小时 av一区二区三区四区 | 欧美一级黄色片 |