echarts画图实例讲解
前两天分享了一个项目(http://hyuhan.com/2016/11/17/A-data-display-platform/),里面用到了echarts(一个纯Javascript的图表库)来画图,项目中用到了它的字符云图,地图,柱状图,饼图等,今天就给大家分享一些一些实现的细节。建议先去看看五分钟上手Echarts再来看这篇博客。
地图
Echarts百度地图扩展,可以在百度地图上进一步展现点图,线图,热力图等,我主要在百度地图上展现的是气泡图。
引入百度地图
首先引入百度地图的jssdk,需要使用在百度地图开发者平台申请的ak
然后引入Echarts
最后引入百度地图扩展bmap(已经打包在echarts包中)
<script src="http://api.map.baidu.com/api?v=2.0&ak=你的ak"></script>
<script src="echarts/dist/echarts.min.js"></script>
<script src="echarts/dist/extension/bmap.min.js"></script>
设置参数
百度地图引入之后,主要就是设置参数了,以我画的最喜爱建筑分布图为例:
option = {// 设置标题样式title: {// 标题文本text: '学生最喜爱学校建筑分布',// 标题离容器左侧的距离,center表示水平居中left: 'center',top: 15, // 标题文本的样式设置textStyle: {fontSize: 24,fontFamily: 'Helvetica',fontWeight: 400}},// 提示框设置为由数据项图形触发tooltip: {trigger: 'item'},// 添加保存为图片和数据视图工具工具栏toolbox: {feature: {saveAsImage: {},dataView: {}},right: 15,top: 10},// 加载bmap组件bmap: {// 百度地图中心经纬度(设置为你需要的地图中心即可)center: [114.427877, 30.517249],// 百度地图缩放比例(按需配置)zoom: 15,// 是否开启拖拽缩放roam: true,// 设置百度地图样式(可参考http://developer.baidu.com/map/jsdevelop-11.htm)mapStyle: {style: 'light'}},series: [{name: '最喜爱建筑',// 图标类型设置为气泡图type: 'scatter',// 设置坐标系为前面提到的bmapcoordinateSystem: 'bmap',// 数据data: [{}],// 气泡标记大小symbolSize: ,label: {normal: {formatter: '{b}',position: 'right',show: true},emphasis: {show: true}},itemStyle: {normal: {color: 'rgba(11, 110, 72, 1)'}}},]
}
另外给大家推荐一个百度的拾取坐标系统,挺好用的。
字符云图
之前一直觉得字符云是个很酷炫的东西,所以这次也就强行把它用上了,嘿嘿。里面的数据是我根据群聊记录分析出来的高频词汇。Echarts的字符云是基于wordcloud2.js的。
引入字符云
直接下载js文件并引入
<script src="echarts.min.js"></script>
<script src="echarts-wordcloud.min.js"></script>
webpack引入
npm install echarts-wordcloud
import echarts from 'echarts'
import 'echarts-wordcloud'
设置参数
option = {title: {text: title,textStyle: {fontSize: 26,fontFamily: 'Helvetica',fontWeight: 400},left: 'center',top: 20},toolbox: {feature: {saveAsImage: {},dataView: {}},right: 20,top: 20},series: [{// 设置图表类型为'wordCloud'type: 'wordCloud',// 设置cloud的形状shape: 'cardioid',// shape: 'pentagon',// shape: 'circle',left: 'center',top: 30,width: '75%',height: '80%',// 设置字符字体大小的范围sizeRange: [12, 75],// 设置字符旋转的角度范围rotationRange: [-90, 90],rotationStep: 45,// 字符间距gridSize: 8,// 字符字体样式textStyle: {normal: {fontFamily: 'Microsoft Yahei',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必选包含name和value选项,name即为显示的字符,value越大字符字体大小越大data: [{name: '',value: , textStyle: {normal: {},emphasis: {}}},{...},...]}]
}
画热力图
根据班级群聊数据分析出来的同学之间亲密度,思前想后最后决定用热力图。热力图不需要额外的插件,直接讲参数设置。
参数设置
option = {title: {text: '通信1502班同学关系密切度分析图(仅通过群聊数据分析)',// 子标题subtext: '数值越大两者越亲密',subtextStyle: {fontSize: 16},left: 'center',top: 4,textStyle: {fontSize: 22,fontFamily: 'Helvetica',fontWeight: 400}},tooltip: {trigger: 'item'},toolbox: {feature: {saveAsImage: {},dataView: {}},right: 15},grid: {height: '78%',bottom: '14%'},// x轴设置xAxis: {// 坐标轴为类目轴type: 'category',// 数组,x轴显示的刻度标签data: [...],// 刻度标签相关设置axisLabel: {// 如果水平放不下,可以旋转rotate: 60,// 刻度标签显示间隔interval: 0},splitArea: {show: true}},yAxis: {type: 'category',data: [...],splitArea: {show: true} },// 视觉映射组件,也就是项目展示中热力图最小面现实的那个组件visualMap: {// 组件允许的最小值和最大值min: 0,max: 100,calculable: true,// 组件高度itemheight: 300,// 组件水平放置orient: 'horizontal',left: 'center',bottom: '3%'},series: [{name: '亲密度',// 图标类型为heatmaptype: 'heatmap',// 二维数组,每个数据项都是一个一维的数组,前两个值表示直角坐标系上的x,y,第三个至表示大小。data: [[0,0,2],[]...],label: {normal: {show: true}},itemStyle: {emphasis: {shadowBlur: 10,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]
}
饼图和条形图比较基础,可以参考官方实例,建议仔细阅读官方配置文档,可以自己画出各种有趣的图形来。
echarts画图实例讲解相关推荐
- Django+Echarts画图实例
所有演示均基于Django2.0 阅读此篇文章你可以: 了解Django中aggregate和annotate函数的使用方法 获取一个Django+Echarts绘制柱状图的完整示例 需求说明 一张会 ...
- python雷达图详解_python绘制雷达图实例讲解
在python中,有很多用于生成基于JS的百度开源的数据可视化图表 Echarts 的类库.设置的图样都非常漂亮,小编之前研究过很多图示,用python去抓取数据,然后进行画图,经历这么多得图样,最深 ...
- 手摸手教你数据可视化!(附实例讲解)
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:CrescentAI,华南理工大学,Datawhale优秀学习者 ...
- 【Python基础】手把手教你数据可视化!(附实例讲解)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:CrescentAI,华南理工大学,Datawhale优秀学 ...
- think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...
ThinkPHP之A方法实例讲解 ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('Use ...
- python pandas 处理相同标题的csv文件_Python使用pandas处理CSV文件的实例讲解
Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大. CSV(Comma-Separated Values)格式的文件是指 ...
- java json 序列化对象空值不处理_jackson 实体转json 为NULL或者为空不参加序列化(实例讲解)...
使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null:这样在某些前端组件上应用该json对象会报错.(例如:echarts) 下面总结 ...
- [转载]J2ME游戏开发实例讲解
J2ME游戏开发实例讲解 一.序言 昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现 ...
- j2me游戏开发实例讲解 (转)
j2me游戏开发实例讲解 (转)[@more@] j2me再现华容道 一.序言 昨天在网上闲逛,发现一篇讲解用 Delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到 手机中去的冲 ...
最新文章
- LESSON 12.7 梯度提升树的参数空间与TPE优化
- 21天学通HTML5和CSS3第二版,21天学通HTML5+CSS3
- .net中从GridView中导出数据到excel(详细)
- 【资源】MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件
- Chrome 访问一次 Controller,请求却执行两次
- 安装python解释器
- java 参数理解,JAVA参数传递值传递的理解。
- 吴恩达神经网络和深度学习-学习笔记-3-参数随机初始化
- php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法
- 钢结构设计软件:IDEA StatiCa 21.1.4.X Crack-new
- 第十四章 C语言头文件的编写_C语言标准库以及标准头文件
- ubuntu18.04截图快捷键
- bilibili助手C2C服务器,Bilibili助手
- 搭建情感分析系统,tf-idf,word2vec
- 达梦数据库基础篇--数据库管理工具
- 跨平台移动框架iMAG开发入门
- 旧约圣经对基督(弥赛亚)的预言
- A7600C USIM卡接口设计
- 一文读懂BLOB算法
- 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案
热门文章
- ActionScript 3.0编译器编译错误大全【转】
- C++_选择结构_switch语句_循环结构while_while案例猜数字_do while循环_dowhile案例水仙花数_---C++语言工作笔记017
- Sharding-JDBC水平分表(环境搭建)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记007
- k8s核心技术-资源编排(yaml)的介绍---K8S_Google工作笔记0018
- MQTT工作笔记0009---订阅主题和订阅确认
- Android异常总结---ActivityManager: Warning: Activity not started, its current task has been brought to
- 如何杀掉服务器的进程
- 使用示例之线程调用自身
- win10安装迅雷精简版处理方法---发布者不受信任
- MFC中从一个类向其他类发送消息的方法