vue中使用詞云圖的實(shí)現(xiàn)示例
在vue中, 查找到有兩種方法來實(shí)現(xiàn)詞云圖, 分別是echarts 和 highcharts
Echarts:
注意,wordcloud對(duì)應(yīng)的echarts版本有要求:echarts-wordcloud@2 is for echarts@5 echarts-wordcloud@1 is for echarts@4
需要下載echartsjs 和 wordcloud, 全局注冊(cè)引用echarts
npm install echarts@5 npm install echarts-wordcloud@2
<div class="cloud-wrap">
<div ref="cloudEl" class="cloud-box"></div>
</div>
<style>
.cloud-wrap {
width: 100%;
height: 100%;
}
.cloud-box {
width: 100%;
height: 100%;
}
</style>
<script>
import wordcloud from 'echarts-wordcloud';
export default {
data() {
return {
words:[{
id:1,
content:'name'
}],
bgImg:'base64格式, 底色為白色',
}
},
mounted() {
this.drawCloud(this.$refs.cloudEl, this.words);
},
methods:{
drawCloud(wrapEl, data) {
// let maskImage = new Image(); //可以根據(jù)圖片形狀生成有形狀的詞云圖
// maskImage.src= this.bgImg;
let list = this.wordCloudData.map((item) => ({
name: item.content,
value: item.id
}))
if(list.length == 0){
list = [{name:'無',value:50}]
}
let myChart = echarts.init(wrapEl);
let option =
{
tooltip: {
show: true,
},
// backgroundColor:'#fff', // 畫布背景色
series: [
{
name: "熱詞",
type: "wordCloud",
// maskImage: maskImage, // 圖片形狀
keepAspect: false,
sizeRange: [10, 40], //畫布范圍,如果設(shè)置太大會(huì)出現(xiàn)少詞(溢出屏幕)
rotationRange: [0, 0], //數(shù)據(jù)翻轉(zhuǎn)范圍
// shape: "circle",
// drawOutOfBound: true, // 超出畫布的詞匯是否隱藏
drawOutOfBound: false,
color:"#fff",
left: "center",
top: "center",
right: null,
bottom: null,
// width: "100%",
height: "100%",
gridSize: 8,
textPadding: 10,
autoSize: {
enable: true,
minSize: 6,
},
textStyle: {
normal: {
fontFamily: 'sans-serif',
fontWeight: 'bold',
color:"#333", // 字體顏色
// color: function () { // 字體顏色
// return 'rgb(' + [
// Math.round(Math.random() * 160),
// Math.round(Math.random() * 160),
// Math.round(Math.random() * 160)
// ].join(',') + ')';
// },
},
emphasis: {
// focus: 'self',
textStyle:{
shadowBlur: 10,
shadowColor: "#333",
}
},
},
data: list,
},
],
};
// maskImage.onload = function() {
myChart.setOption(option, true)
// };
},
}
}
</script>

無遮罩層的詞云圖↑

有遮罩層的詞云圖↑
Highcharts
下載包
npm install highcharts@7.2.1
<div class="cloud-wrap">
<div id="container" style="width: 100%;height: 100%;"></div>
</div>
<style>
// 同上
</style>
<script>
import Highcharts from 'highcharts'
export default {
data() {
return {
words:[{
id:1,
content:'name'
}],
}
},
mounted() {
this.dealData();
},
methods:{
dealData(){
let data = this.words.map((item,index) => ({
name: item.content,
value: item.id,
//weight: Math.floor(Math.random()*3+1)
//控制加粗,隨機(jī)數(shù)取1~3, 若需要按照接口返回的順序, 可不隨機(jī)
weight: item.id*100
}))
this.drawPic(data)
},
drawPic(data){
Highcharts.chart('container', {
//highcharts logo
credits: { enabled: false },
//導(dǎo)出
exporting: { enabled: false },
//提示關(guān)閉
tooltip: { enabled: false },
//顏色配置
colors:[
'#ffffff'
// ,'#00c0d7','#2594ce','#de4c85',
// '#ff7f46','#ffb310','#e25c52'
],
//圖形配置
chart: {
// spacingBottom: 15,
// spacingTop: 12,
spacingLeft: 5,
spacingRight: 5,
backgroundColor: "rgba(255, 255, 255,0)",
},
series: [{
type: "wordcloud",// 類型
data: data,
rotation: 90,//字體不旋轉(zhuǎn)
maxFontSize: 40,//最大字體
minFontSize: 14,//最小字體
style: {
fontFamily: "sans-serif",
fontWeight: '500'
}
}],
});
},
}
}
</script>

echarts 和 highcharts 都可以在vue中實(shí)現(xiàn)詞云圖. 但是如果使用echarts的話, 需要當(dāng)前的echarts進(jìn)行升級(jí)或降級(jí)才能實(shí)現(xiàn)字體多顏色, 而highcharts則不需要. 自定義形狀highcharts暫時(shí)還沒探究, 需要的可以自行查找, 以后有機(jī)會(huì)的話我也會(huì)看看.
到此這篇關(guān)于vue中使用詞云圖的文章就介紹到這了,更多相關(guān)vue中使用詞云圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue 解決路由過渡動(dòng)畫抖動(dòng)問題(實(shí)例詳解)
這篇文章主要介紹了Vue 解決路由過渡動(dòng)畫抖動(dòng)問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
淺談Vue.js之初始化el以及數(shù)據(jù)的綁定說明
今天小編就為大家分享一篇淺談Vue.js之初始化el以及數(shù)據(jù)的綁定說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
如何解決element-ui中select下拉框popper超出彈框問題
這篇文章主要介紹了如何解決element-ui中select下拉框popper超出彈框問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
vue directive全局自定義指令實(shí)現(xiàn)按鈕級(jí)別權(quán)限控制的操作方法
這篇文章主要介紹了vue directive全局自定義指令實(shí)現(xiàn)按鈕級(jí)別權(quán)限控制,本文結(jié)合實(shí)例代碼對(duì)基本概念做了詳細(xì)講解,需要的朋友可以參考下2023-02-02
使用vant-picker實(shí)現(xiàn)自定義內(nèi)容,根據(jù)內(nèi)容添加圖標(biāo)
這篇文章主要介紹了使用vant-picker實(shí)現(xiàn)自定義內(nèi)容,根據(jù)內(nèi)容添加圖標(biāo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Vue動(dòng)態(tài)組件和keep-alive組件實(shí)例詳解
動(dòng)態(tài)組件指的是動(dòng)態(tài)切換組件的顯示與隱藏,下面這篇文章主要給大家介紹了關(guān)于Vue動(dòng)態(tài)組件和keep-alive組件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式
這篇文章主要介紹了vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

