[本文出自天外归云的博客园]

简介

在Vue中使用E-Charts可以用V-Charts,词云图在V-Charts官网中介绍比较简单,如果想更多定制的话,官网上说要在extend属性中进行扩展。

V-Charts官网关于V-Charts中词云图相关的介绍

Echart官网Echarts github中关于词云图相关的介绍

V-Charts官网关于extend配置项的介绍

使用示例

以下是扩展后的样子:

<template>
<div>
<el-row>
<h3 class="float-left"><i class="el-icon-check"></i> 分词统计</h3>
</el-row>
<el-row :gutter="20">
<el-col :span="3">
<SelectOption :selected.sync="versionSelected"
:options="versionOptions"
placeholder="请选择版本"></SelectOption>
</el-col>
<el-col :span="3">
<SelectOption :selected.sync="platformSelected"
:options="platformOptions"
placeholder="请选择平台"></SelectOption>
</el-col>
<el-col :span="6">
<DateTimePicker :dateValue.sync="dateValue"></DateTimePicker>
</el-col>
</el-row>
<!-- <div id="wordCloud">
<wordcloud :rotate="{from: -5, to: 5, numOfOrientation: 5 }"
fontScale="n"
spiral="rectangular"
:data="cloudWords"
nameKey="word"
valueKey="cou"
:wordClick="showTimes">
</wordcloud>
</div> -->
<ve-wordcloud v-if="showChart"
width="100%"
height="700px"
:data="chartData"
:extend="chartExtend"
:settings="chartSettings"></ve-wordcloud>
<div style="text-align:left;margin-left:10px"
v-else>没数据</div>
</div>
</template>
<style>
</style>
<script>
import { SelectOption, DateTimePicker } from '@/components/common'
import { getFeedbackWordCloud } from '@/api/feedbacks'
import { EventBus } from '@/bus.js'
// import wordcloud from 'vue-wordcloud'
export default {
name: 'wordCloud',
components: {
// wordcloud,
SelectOption,
DateTimePicker
},
data () {
return {
showChart: true,
chartSettings: {
color: ['#4876FF', '#87CEFA', '#98F5FF', '#BBFFFF']
},
chartExtend: {
series: {
rotationRange: [0, 0],
sizeRange: [50, 150],
width: '100%',
height: '100%',
drawOutOfBound: true,
textStyle: {
normal: {
color: function () {
return 'rgb(' + [
Math.round(Math.random() * 160),
Math.round(Math.random() * 160),
Math.round(Math.random() * 160)
].join(',') + ')'
}
},
emphasis: {
shadowBlur: 10,
shadowColor: '#333'
}
}
}
},
chartData: {
columns: ['word', 'cou'],
rows: []
},
version: [],
versionSelected: 'all',
versionOptions: [],
platform: [],
platformSelected: 'all',
platformOptions: [],
myProjectId: this.$route.query.feedbackProject,
dateValue: [new Date(2018, 9, 1, 0, 0), new Date(2018, 9, 8, 0, 0)]
}
},
methods: {
/**
* 阅读vue-wordcloud
* WordCloud.vue源代码即可知此函数是必须的
*/
showTimes (val1, val2) {
for (var i in val2.data) {
if (val2.data[i]['text'] === val1) {
var tip = '"' + val1 + '" 分词统计次数:' + val2.data[i]['cou']
this.$alert(tip, '', {})
}
}
},
getFbWordCloud () {
let _this = this
let projectId = _this.myProjectId
let startTime = _this.startTime
let endTime = _this.endTime
let clientVersion = _this.versionSelected
let origin = _this.platformSelected
if (origin === 'all') {
origin = -1
}
getFeedbackWordCloud(projectId, startTime, endTime, clientVersion, origin).then(data => {
_this.showChart = true
_this.chartData.rows = data
if (data === undefined || data.length === 0) {
_this.showChart = false
}
})
},
initVersion () {
let _this = this
// Version Select Options
_this.versionOptions = []
for (let index = 0; index < _this.version.length; index++) {
_this.versionOptions.push({
'id': (_this.version)[index].name,
'label': (_this.version)[index].name,
'value': (_this.version)[index].name
})
}
_this.versionSelected = 'all'
},
initPlatform () {
let _this = this
// Platform Select Options
_this.platformOptions = []
for (let index = 0; index < _this.platform.length; index++) {
_this.platformOptions.push({
'id': (_this.platform)[index].id,
'label': (_this.platform)[index].name,
'value': (_this.platform)[index].id
})
}
_this.platformSelected = 'all'
},
setDateValue () {
let _this = this
let sDate = _this.dateValue[0]
let eDate = _this.dateValue[1]
_this.startTime = sDate.getFullYear() + '-' + (sDate.getMonth() + 1) + '-' + sDate.getDate() + ' 00:00:00'
_this.endTime = eDate.getFullYear() + '-' + (eDate.getMonth() + 1) + '-' + eDate.getDate() + ' 00:00:00'
// console.log(_this.startTime)
// console.log(_this.endTime)
}
},
created () {
let _this = this
_this.setDateValue()
// Get projectId
EventBus.$on('projectId', projectId => {
// console.log('[WordCloud下车]projectId')
_this.myProjectId = projectId
})
// Get version
EventBus.$on('version', version => {
// console.log('[WordCloud下车]version')
_this.version = version
_this.initVersion()
})
// Get origin
EventBus.$on('origin', origin => {
// console.log('[WordCloud下车]origin')
_this.platform = origin
_this.initPlatform()
})
},
mounted () {
this.getFbWordCloud()
},
watch: {
versionSelected: {
immediate: false,
handler: function () {
this.getFbWordCloud()
}
},
platformSelected: {
immediate: false,
handler: function () {
this.getFbWordCloud()
}
},
dateValue: {
immediate: false,
handler: function () {
this.setDateValue()
this.getFbWordCloud()
}
},
version: {
immediate: false,
handler: function () {
this.getFbWordCloud()
}
},
platform: {
immediate: false,
handler: function () {
this.getFbWordCloud()
}
}
}
}
</script>

上面是我使用词云图所在的整个单文件组件,其中词云图使用相关只需要关注以下三点:

1.变量chartExtend在ve-wordcloud标签中对应的插槽位

2.我是全局引入的ve-wordcloud,所以如果你没有全局引入,一定要在组件中import下:

// import wordcloud from 'vue-wordcloud'

3.变量chartSettings是官网上给出的标准设置插槽位对应的变量值

V-Charts中使用extend属性定制词云图的更多相关文章

  1. 使用Python定制词云

    一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代 ...

  2. (数据科学学习手札71)在Python中制作个性化词云图

    本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 词云图是文本挖掘中用来表征词频的数据可视化 ...

  3. 用Python制作酷炫词云图,原来这么简单!

    一.简介词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词:! 图1 词云图示例 在Python中有很多可视化框架可以用来制作词云图,如pyecharts,但这些 ...

  4. jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别

    jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别 现在做的一个项目,所使用的框架是基于jQuery扩展的,于是平时学了一下jQuery,了解到了它的扩展函数: ...

  5. js中的extend,可实现浅拷贝深拷贝

    js中的extend   1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为 ...

  6. js中的extend

    js中的extend   1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为 ...

  7. jQuery中样式和属性模块简单分析

    1.行内样式操作 目标:扩展框架实现行内样式的增删改查 1.1 创建 css 方法 目标:实现单个样式或者多个样式的操作 1.1.1 css方法 -获取样式 注意:使用 style 属性只能获取行内样 ...

  8. (转)jQuery中的extend()方法

    本文转自:http://www.xiabingbao.com/jquery/2015/05/30/jquery-extend 原文的排版要比这里美观很多,建议去原文查看.本文仅仅作为个人的mark,方 ...

  9. HTML 5 中的标准属性

    HTML 全局属性 HTML 属性赋予元素意义和语境. 下面的全局属性可用于任何 HTML 元素. (5)= HTML5 中添加的属性. 属性 描述 accesskey 规定激活元素的快捷键. cla ...

随机推荐

  1. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件

    XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...

  2. react编码规范

    1.每个文件只写一个组件,但是多个无状态组件可以放在单个文件中: 2.有内部状态,方法或要对外暴露ref的组件,用类式组件: 3.无内部状态,方法或无需对外暴露ref的组件,用函数式组件: 4.有内部 ...

  3. 机器学习系列-tensorflow-02-基本操作运算

    tensorflow常数操作 import tensorflow as tf # 定义两个常数,a和b a = tf.constant(2) b = tf.constant(3) # 执行默认图运算 ...

  4. [JOISC2014]電圧

    [JOISC2014]電圧 题目大意: 一个\(n(n\le10^5)\)个点,\(m(m\le2\times10^5)\)条边的无向图.要在图中找到一条边,满足去掉这条边后,剩下的图是一个二分图,且 ...

  5. 关于 win10启动错误 Error:16

    那个软件报这个错误,就打开属性 -- 兼容性 -- 打勾以管理员身份运行

  6. 2017.08.05【NOIP提高组】模拟赛B组

    Summary 这次比赛打得非常差,第一题我以为是个难题,于是推了一下就没再去想了,然而考场上一堆人AC.第二题状态设错了,导致结果有后效性.结束后pascal卡常卡了36次.第三题别人n²就过了,我 ...

  7. 安装django及配置

    安装 diango官网下载地址 https://www.djangoproject.com/download/ 安装最新的LTS版本 pip安装(在windows的crm中或pycharm中的Term ...

  8. yii2 Gridview网格小部件

    Gridview 网格小部件 一.特点: 1.是yii中功能最强大的小部件之一: 2.非常适合快速建立系统的管理后台. 3.用 dataProvider 键来指定数据的提供者 4.用 filterMo ...

  9. Java weak reference

    一个对象被回收,必须满足两个条件: 没有任何引用指向它和GC在运行.把所有指向某个对象的引用置空来保证这个对象在下次GC运行时被回收. Object c = new Car(); c = null; ...

  10. java第七周动手动脑

    public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); ...