文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue中使用词云图的实现方法

2023-06-29 00:50

关注

这篇文章将为大家详细讲解有关vue中使用词云图的实现方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在vue中, 查找到有两种方法来实现词云图, 分别是echarts 和 highcharts

Echarts:

注意,wordcloud对应的echarts版本有要求:echarts-wordcloud@2 is for echarts@5 echarts-wordcloud@1 is for echarts@4

需要下载echartsjs 和 wordcloud, 全局注册引用echarts

npm install echarts@5npm 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(); //可以根据图片形状生成有形状的词云图        // 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], //画布范围,如果设置太大会出现少词(溢出屏幕)                rotationRange: [0, 0], //数据翻转范围                // 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>

vue中使用词云图的实现方法

无遮罩层的词云图&uarr;

vue中使用词云图的实现方法

有遮罩层的词云图&uarr;

Highcharts

下载包

npm install highcharts@7.2.1
<div class="cloud-wrap">    <div id="container" ></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)            //控制加粗,随机数取1~3, 若需要按照接口返回的顺序, 可不随机            weight: item.id*100         }))        this.drawPic(data)    },    drawPic(data){        Highcharts.chart('container', {            //highcharts logo            credits: { enabled: false },            //导出            exporting: { enabled: false },            //提示关闭            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,//字体不旋转                maxFontSize: 40,//最大字体                minFontSize: 14,//最小字体                style: {                    fontFamily: "sans-serif",                    fontWeight: '500'                }            }],        });    },  }}</script>

vue中使用词云图的实现方法

echarts 和 highcharts 都可以在vue中实现词云图. 但是如果使用echarts的话, 需要当前的echarts进行升级或降级才能实现字体多颜色, 而highcharts则不需要. 自定义形状highcharts暂时还没探究, 需要的可以自行查找。

关于vue中使用词云图的实现方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯