【Echarts】使用echarts和echarts-wordcloud生成词云图

一、下载echarts和echarts-wordcloud

地址:https://download.csdn.net/download/qq_25285531/88663006

可直接下载放在项目中使用

二、词云数据

词云数据是对象的格式,可以从后端获取,这里以下面数据为例

javascript 复制代码
$list3 = array(
	array('name' => '粉丝团', 'value' => '8'),
	array('name' => '发热我', 'value' => '15'),
	array('name' => '天', 'value' => '54'),
	array('name' => '人', 'value' => '83'),
	array('name' => '太热', 'value' => '15'),
	array('name' => 't热', 'value' => '11'),
	array('name' => '特瑞', 'value' => '65'),
	array('name' => '太热', 'value' => '65'),
	array('name' => '亚特人团', 'value' => '65'),
	array('name' => '东方化工', 'value' => '57'),
	array('name' => 'h规范', 'value' => '15'),
	array('name' => 'h规范', 'value' => '95'),
	array('name' => '粉丝团', 'value' => '90'),
	array('name' => '好地方', 'value' => '54'),
	array('name' => '给太热', 'value' => '70'),
	array('name' => '依托', 'value' => '50'),
	array('name' => 'y太热', 'value' => '58'),
	array('name' => '梵蒂冈', 'value' => '88'),
	array('name' => 'y他', 'value' => '11'),
	array('name' => '要让他', 'value' => '21'),
	array('name' => '和', 'value' => '92'),
	array('name' => '粉广泛的丝团', 'value' => '85'),
	array('name' => 'iuy', 'value' => '8'),
	array('name' => '广泛大概', 'value' => '58'),
	array('name' => 'g放到', 'value' => '75'),
	array('name' => '范德萨范德萨', 'value' => '55'),
	array('name' => 'g放到', 'value' => '12'),
	array('name' => 'r二维图', 'value' => '25'),
	array('name' => '吧v', 'value' => '15'),
	array('name' => '哦iu有', 'value' => '75'),
	array('name' => '哦iu有', 'value' => '65'),
	array('name' => '广泛的', 'value' => '5'),
	array('name' => 't热天坛人', 'value' => '55'),
	array('name' => '发大水了', 'value' => '15'),
	array('name' => 't热', 'value' => '5'),
	array('name' => '范德萨', 'value' => '25'),
	array('name' => '范德萨', 'value' => '55'),
	array('name' => 'rfew ', 'value' => '25'),
	array('name' => 'fgd ', 'value' => '35'),
	array('name' => 'hgf', 'value' => '95'),
	array('name' => '个人', 'value' => '85'),
	array('name' => 'y他', 'value' => '5'),
	array('name' => '范德萨', 'value' => '84'),
	array('name' => ' 也让', 'value' => '18'),
	array('name' => '范德萨', 'value' => '19'),
	array('name' => '烦烦烦', 'value' => '62'),
);

三、生成词云

可以根据属性去修改词云的配置项,以达到自己想要的效果

javascript 复制代码
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
	<style>
		
		html, body, #main {
			width: 100%;
			height: 100%;
			margin: 0;
		}
		
	</style>
</head>
<body>
	<div class="content">
		<div class="main left" >
			<div id="main" style="width:640px;height:500px;"></div>
		</div>
	</div>  
	
	<script src="/newadmin/js/jquery-1.12.3.min.js" charset="utf-8"></script> 
	<script src="/newadmin/js/echarts.min.js" charset="utf-8"></script> 
	<script src="/newadmin/echarts-wordcloud/echarts-wordcloud.min.js"></script>
	<script>
        var myChart = echarts.init(document.getElementById('main'));

        // 异步加载数据
		$.get("xxxxxx").done(function (res) {
       		
       		var data = res.data  		//后端传回来的数据
			var option = {
				backgroundColor:'#193762',
				series: [ {
					type: 'wordCloud',
					sizeRange: [15, 30], // 用来调整字的大小范围
					rotationRange: [-30, 30],  每个词旋转的角度范围和旋转的步进
					gridSize: 10, // 用来调整词之间的距离
					shape: 'pentagon',// shape这个属性虽然可配置,但是在词的数量不太多的时候,效果不明显,它会趋向于画一个椭圆
					width: '100%' , 
					height: '100%', 
					left: 'center',
					top: 'center',
			        drawOutOfBound: false,//溢出是否显示
			        autoSize: {
			        	enable: true,
			        	minSize: 4
			        },
			        layoutAnimation: true,// 布局的时候是否有动画
			        keepAspect: true,
			        textStyle: {
			        	normal: {
			        		color: function(v) {
			        			// console.log(v.data)
			        			if (v.data.value < 60) {
			        				return '#FF5722';
			        			}else if (60 <= v.data.value && v.data.value < 80) {
			        				return '#FFB800';

			        			}else if (80 <= v.data.value &&  v.data.value <= 100) {
			        				return '#1E9FFF';

			        			}
			        		},
			        		fontWeight: '550'
			        	}
			        },
			        data: data
			    } ]
			};

			if (option && typeof option === 'object') {
				myChart.setOption(option);
			}

			window.addEventListener('resize', myChart.resize);
        }
	</script>
</body>
</html>

四、效果图

不同的数值用不同的颜色标识

相关推荐
小李子呢02115 分钟前
前端八股CSS(3)---水平垂直居中的实现方法
前端·css·css3
M ? A7 分钟前
Vue3 转 React:组件透传 Attributes 与 useAttrs 使用详解|VuReact 实战
前端·javascript·vue.js·经验分享·react.js·开源·vureact
火山引擎开发者社区7 分钟前
方舟 Coding Plan 支持 Embedding 模型,让 AI Agent “找得更准、记得更久”
前端·javascript·人工智能
小旭952712 分钟前
SpringBoot 项目实战:ECharts 数据可视化 + POI Excel 报表导出完整版教程
java·spring boot·后端·信息可视化·echarts
whuhewei13 分钟前
微前端之模块联邦
前端·架构
We་ct13 分钟前
JS手撕:手写Koa中间件与Promise核心特性
开发语言·前端·javascript·中间件·node.js·koa·co
欧阳天风15 分钟前
vue3的组件优化
前端·vue.js·性能优化
打瞌睡的朱尤15 分钟前
蓝桥杯复习大纲
前端·javascript·vue.js
许彰午16 分钟前
# Excel转PDF合并单元格边框错乱?jxl+iText逐格解析样式,政务报表精准还原方案
前端·javascript·pdf
观无21 分钟前
html+nginx实现看板
前端·nginx·html