Echarts词云图绘制

1,什么是词云图?

词云图,也叫文字云,是对网络文本中出现频率较高的“关键词”予以视觉上的突出,出现越多,显示的字体越大,越突出,这个关键词也就越重要。让浏览者通过词云图一眼就可以快速感知最突出的文字,迅速抓住重点,了解主旨。

2,绘制词云图

引入js文件

echarts.js echarts-wordcloud.min.js下载链接:
https://download.csdn.net/download/qq_42092076/16664047

一个简单的 ECharts 词云图示例代码:

<!DOCTYPE html>
<html style="height: 100%">
<head>
    <meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
    <div id="container" style="height: 100%"></div>
 
    <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
    <!-- 引入 ECharts 词云图组件 -->
    <script src="https://cdn.jsdelivr.net/npm/echarts-wordcloud/dist/echarts-wordcloud.min.js"></script>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('container'));
 
        var option = {
            series: [{
                type: 'wordCloud',
                gridSize: 20,
                sizeRange: [12, 50],
                rotationRange: [-90, 90],
                textStyle: {
                    normal: {
                        color: function () {
                            return 'rgb(' +
                                Math.round(Math.random() * 255) + ',' +
                                Math.round(Math.random() * 255) + ',' +
                                Math.round(Math.random() * 255) + ')';
                        }
                    }
                },
                data: [
                    {name: 'Example', value: 10000},
                    {name: 'ECharts', value: 6181},
                    {name: 'Word Cloud', value: 4386},
                    {name: 'Open Source', value: 4055}
                    // ... 其他词云图数据
                ]
            }]
        };
 
        myChart.setOption(option);
    </script>
</body>
</html>

实现

这段代码创建了一个简单的词云图,其中包含了四个词汇:"Example"、"ECharts"、"Word Cloud" 和 "Open Source",每个词汇的频率由它们的 value 属性表示。你可以根据需要添加更多的数据点来增加词的多样性和频率。

复杂词云图代码示例

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="utf-8">  
    <title>词云图</title>  
 <!-- 引入ECharts文件 --> 
    <script type="text/javascript" src = "http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript" src="/js/echarts.js"></script>  
</head>  
<body>  
    <div id="main" style="width: 80%;height: 400px;border: 1px solid black"></div>  
</body>    
    <script type="text/javascript">  
 // 使用模块化加载方式
    require.config({
        paths:{echarts:'http://echarts.baidu.com/build/dist'}
    })
    require(
        [
            'echarts',
            'echarts/chart/wordCloud',
        ],
        function(ec){
            var myChart = ec.init(document.getElementById('main'));
            function createRandomItemStyle(){//创建随机颜色
                return{
                    normal:{
                        color:'rgb('+[
                            Math.round(Math.random()*255),
                            Math.round(Math.random()*255),
                            Math.round(Math.random()*255)
                    ].join(',')+')'
                    }
                };
            }
            option = {  
                title:{
                    text:'词云图',
                    link:'',
                },
                backgroundColor:'rgba(128,128,128,0.1)',
                tooltip:{show:true},
                series:[{
                    name:'p1',
                    type:'wordCloud',
                    sizeRange:[100,50000],//最大最小值
                    size:['95%','95%'],//词云图大小
                    textRotation:[0,45,90,135,-45,-90],//词的倾斜角度
                    textPadding:4,
                    autoSize:{enable:true,minSize:2},
                    data:[//词云名称,词云大小,颜色
                        {name:'热爱',value:16884,itemStyle:{normal:{color:'red'}}},
                        {name:'明媚',value:8844,itemStyle:createRandomItemStyle()},
                        {name:'耀眼',value:16644,itemStyle:createRandomItemStyle()},
                        {name:'阳光',value:2244,itemStyle:createRandomItemStyle()},
                        {name:'小红花',value:14844,itemStyle:createRandomItemStyle()},
                        {name:'希望',value:2244,itemStyle:createRandomItemStyle()},
                        {name:'永远',value:1688,itemStyle:createRandomItemStyle()},
                        {name:'散步',value:15552,itemStyle:createRandomItemStyle()},
                        {name:'美好',value:8848,itemStyle:createRandomItemStyle()},
                        {name:'芳草地',value:7788,itemStyle:createRandomItemStyle()},
                        {name:'爱自己',value:5240,itemStyle:createRandomItemStyle()},
                        {name:'祝福',value:12244,itemStyle:createRandomItemStyle()},
                        {name:'陪伴',value:7749,itemStyle:createRandomItemStyle()},
                        {name:'哈哈哈',value:2244,itemStyle:createRandomItemStyle()},
                        {name:'放弃',value:11044,itemStyle:createRandomItemStyle()},
                        {name:'天天开心',value:6749,itemStyle:createRandomItemStyle()},
                        {name:'顺心',value:814,itemStyle:createRandomItemStyle()},
                        {name:'拒绝',value:8349,itemStyle:createRandomItemStyle()},
                        {name:'和',value:7789,itemStyle:createRandomItemStyle()},
                        {name:'撕掉标签',value:6189,itemStyle:createRandomItemStyle()},
                        {name:'^_^',value:2782,itemStyle:createRandomItemStyle()},
                        {name:'嘻嘻',value:261,itemStyle:createRandomItemStyle()},
                    ]
                }]
       };
       myChart.setOption(option);
     }
);
    </script>

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Echarts 是一个非常流行的数据可视化库,它支持多种图表类型,包括词云图。下面是一个简单的使用 Echarts 绘制词云图的示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Echarts 词云图</title> <!-- 引入 Echarts 库 --> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <!-- 使用 Echarts 绘制词云图的容器 --> <div id="wordcloud" style="width: 600px; height: 400px;"></div> <script> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('wordcloud')); // 定义词云图的数据 var data = [ {name: '张三', value: 100}, {name: '李四', value: 80}, {name: '王五', value: 70}, {name: '赵六', value: 60}, {name: '钱七', value: 50}, {name: '孙八', value: 40}, {name: '周九', value: 30}, {name: '吴十', value: 20}, ]; // 配置词云图的参数 var option = { series: [{ type: 'wordCloud', shape: 'circle', left: 'center', top: 'center', width: '80%', height: '80%', right: null, bottom: null, sizeRange: [12, 60], rotationRange: [-90, 90], rotationStep: 45, gridSize: 8, drawOutOfBound: false, textStyle: { normal: { fontFamily: 'sans-serif', fontWeight: 'bold', 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' } }, data: data }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html> ``` 这个示例中,我们首先引入了 Echarts 库,然后在页面中创建一个容器用于显示词云图。接着,我们定义了词云图的数据,包括每个词的名称和权重。最后,我们使用 Echarts 的 `wordCloud` 类型来创建词云图,并通过配置参数来指定词云图的样式和数据。最终,我们将配置项和数据传递给 Echarts 的实例对象,并通过调用 `setOption` 方法显示图表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值