前两天分享了一个项目(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画图实例讲解相关推荐

  1. Django+Echarts画图实例

    所有演示均基于Django2.0 阅读此篇文章你可以: 了解Django中aggregate和annotate函数的使用方法 获取一个Django+Echarts绘制柱状图的完整示例 需求说明 一张会 ...

  2. python雷达图详解_python绘制雷达图实例讲解

    在python中,有很多用于生成基于JS的百度开源的数据可视化图表 Echarts 的类库.设置的图样都非常漂亮,小编之前研究过很多图示,用python去抓取数据,然后进行画图,经历这么多得图样,最深 ...

  3. 手摸手教你数据可视化!(附实例讲解)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:CrescentAI,华南理工大学,Datawhale优秀学习者 ...

  4. 【Python基础】手把手教你数据可视化!(附实例讲解)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:CrescentAI,华南理工大学,Datawhale优秀学 ...

  5. think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...

    ThinkPHP之A方法实例讲解 ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('Use ...

  6. python pandas 处理相同标题的csv文件_Python使用pandas处理CSV文件的实例讲解

    Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大. CSV(Comma-Separated Values)格式的文件是指 ...

  7. java json 序列化对象空值不处理_jackson 实体转json 为NULL或者为空不参加序列化(实例讲解)...

    使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null:这样在某些前端组件上应用该json对象会报错.(例如:echarts) 下面总结 ...

  8. [转载]J2ME游戏开发实例讲解

    J2ME游戏开发实例讲解 一.序言 昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现 ...

  9. j2me游戏开发实例讲解 (转)

    j2me游戏开发实例讲解 (转)[@more@] j2me再现华容道 一.序言 昨天在网上闲逛,发现一篇讲解用 Delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到 手机中去的冲 ...

最新文章

  1. LESSON 12.7 梯度提升树的参数空间与TPE优化
  2. 21天学通HTML5和CSS3第二版,21天学通HTML5+CSS3
  3. .net中从GridView中导出数据到excel(详细)
  4. 【资源】MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件
  5. Chrome 访问一次 Controller,请求却执行两次
  6. 安装python解释器
  7. java 参数理解,JAVA参数传递值传递的理解。
  8. 吴恩达神经网络和深度学习-学习笔记-3-参数随机初始化
  9. php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法
  10. 钢结构设计软件:IDEA StatiCa 21.1.4.X Crack-new
  11. 第十四章 C语言头文件的编写_C语言标准库以及标准头文件
  12. ubuntu18.04截图快捷键
  13. bilibili助手C2C服务器,Bilibili助手
  14. 搭建情感分析系统,tf-idf,word2vec
  15. 达梦数据库基础篇--数据库管理工具
  16. 跨平台移动框架iMAG开发入门
  17. 旧约圣经对基督(弥赛亚)的预言
  18. A7600C USIM卡接口设计
  19. 一文读懂BLOB算法
  20. 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案

热门文章

  1. ActionScript 3.0编译器编译错误大全【转】
  2. C++_选择结构_switch语句_循环结构while_while案例猜数字_do while循环_dowhile案例水仙花数_---C++语言工作笔记017
  3. Sharding-JDBC水平分表(环境搭建)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记007
  4. k8s核心技术-资源编排(yaml)的介绍---K8S_Google工作笔记0018
  5. MQTT工作笔记0009---订阅主题和订阅确认
  6. Android异常总结---ActivityManager: Warning: Activity not started, its current task has been brought to
  7. 如何杀掉服务器的进程
  8. 使用示例之线程调用自身
  9. win10安装迅雷精简版处理方法---发布者不受信任
  10. MFC中从一个类向其他类发送消息的方法