实现一个简单的echarts词云图

cloud.html

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>WordCloud Demo</title>
  6 </head>
  7 <body>
  8     <!-- 顺序不能变-->
  9     <script src='../static/js/echarts.min.js'></script>
 10     <script src='../static/js/echarts-wordcloud.min.js'></script>
 11     <script src="../static/js/jquery-3.3.1.min.js"></script>
 12     <div id="wordcloud_echarts" style="width:900px; height:600px">
 13     </div>
 14     <div>
 15         <select id="myselect">
 16             <option value="result_data" selected>全部数据</option>
 17             <option value="result_cj">财经</option>
 18             <option value="result_fc">房产</option>
 19             <option value="result_game">游戏</option>
 20             <option value="result_js">军事</option>
 21             <option value="result_jy">教育</option>
 22             <option value="result_kj">科技</option>
 23             <option value="result_qc">汽车</option>
 24             <option value="result_ty">体育</option>
 25             <option value="result_tyjd">体育焦点</option>
 26             <option value="result_zhty">综合体育最新</option>
 27             <option value="result_yl">娱乐</option>
 28         </select>
 29         <button  onclick="tijiao()">检索</button>
 30     </div>
 31     <script>
 32 
 33         //--------------------------------------------------------------
 34         var myChart = echarts.init(document.getElementById('wordcloud_echarts'));
 35         var option = {
 36          tooltip: {
 37             show: true,
 38             trigger: 'item',
 39             position: "top"
 40         },
 41         series: [{
 42             type: 'wordCloud',
 43             sizeRange: [15, 80],
 44             rotationRange: [0, 0],
 45             rotationStep: 45,
 46             gridSize: 8,
 47             shape: 'pentagon',
 48             width: '100%',
 49             height: '100%',
 50             textStyle: {
 51                 normal: {
 52                     color: function () {
 53                         return 'rgb(' + [
 54                             Math.round(Math.random() * 160),
 55                             Math.round(Math.random() * 160),
 56                             Math.round(Math.random() * 160)
 57                         ].join(',') + ')';
 58                     }
 59                 },
 60                 emphasis: {  // 单词高亮时显示的效果
 61                 shadowBlur: 10,
 62                 shadowColor: '#333'
 63                 }
 64             },
 65             left: 'center',
 66             top: 'center',
 67             data: [{
 68           "name": "花鸟市场",
 69           "value": 1446
 70         },
 71           {
 72             "name": "汽车",
 73             "value": 928
 74           },
 75           {
 76             "name": "视频",
 77             "value": 906
 78           },
 79           {
 80             "name": "电视",
 81             "value": 825
 82           },
 83           {
 84             "name": "Lover Boy 88",
 85             "value": 514
 86           }]
 87         }]
 88     };
 89     myChart.setOption(option);
 90     window.addEventListener("resize", function() {
 91         myChart.resize();
 92     })
 93         function tijiao(){
 94             var select_value= document.getElementById("myselect").value
 95             $.ajax({
 96                 url:"/cloud_data?data="+select_value+"",
 97                 async:true,
 98                 success:function(data) {
 99                     option.series[0].data=data.data
100                     // 使用刚指定的配置项和数据显示图表。
101                     myChart.setOption(option);
102                 },
1 success:function(data) {
2                     option.series[0].data=data.data
3                     // 使用刚指定的配置项和数据显示图表。
4                     myChart.setOption(option);
5                 },

 

103                 error:function (xhr,type,errorThrown) {
104                     alert("出现错误!")
105                 }
106             })
107         }
108     </script>
109 </body>
110 </html>

有三个点需要注意:

1、js文件引入顺序

1        <!-- 顺序不能变-->
2       <script src='../static/js/echarts.min.js'></script>
3      <script src='../static/js/echarts-wordcloud.min.js'></script>
4       <script src="../static/js/jquery-3.3.1.min.js"></script>        

2、ajax的success方法

1 success:function(data) {
2                     option.series[0].data=data.data
3                     // 使用刚指定的配置项和数据显示图表。
4                     myChart.setOption(option);
5                 },

3、需要的数据格式

 1             data: [{
 2           "name": "花鸟市场",
 3           "value": 1446
 4         },
 5           {
 6             "name": "汽车",
 7             "value": 928
 8           },
 9           {
10             "name": "视频",
11             "value": 906
12           },
13           {
14             "name": "电视",
15             "value": 825
16           },
17           {
18             "name": "Lover Boy 88",
19             "value": 514
20           }]

常用的两个属性

1、鼠标高亮显示

放在series里

      emphasis: {  // 单词高亮时显示的效果
shadowBlur: 10,
shadowColor: '#333'
}

2、词语显示value

放在option里

 

 tooltip: {
show: true,
trigger: 'item',
position: "top"
},

效果

 

实现一个简单的echarts词云图

 

上一篇:2020东京奥运会数据集echarts可视化分析


下一篇:Typora软件快捷键