博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于echarts的那些事(地图标点,折线图,饼图)
阅读量:6364 次
发布时间:2019-06-23

本文共 8462 字,大约阅读时间需要 28 分钟。

前记:离上一篇博客的发布已经过去两个月了,这期间总想写点什么,却怎么都写不出来,一直拖到了现在。现在的感觉,不是像这期间一样,想好好整理一番,写一篇好博客,却写不出来。事实发现,随心就好,较好的博客,需要深入的技术,现在能力还不够,只能把所遇到的问题写出来,整理一下就好。周五了,一天过去了一半,利用闲下来的时间,把这些天遇到的问题整理一下吧。

 

一、地图标点(以青岛地图为例)


  地图标点有两种方法(两种地图的展现方式)

  准备工作

  •  下载echarts文件。(下载地址:http://echarts.baidu.com/download.html) 

  注意:建议下载完整包,不要自己构建。因为地图要跟冒泡图结合,有些需要东西,自己也不清楚,下个完整包就可以了。

 

  • 青岛地图下载 (下载地址:http://ecomfe.github.io/echarts-map-tool/     可以自己构建全国各省市地图)

上图给出两种构建地图的方法,特别注意的是引入json数据的时候,使用chrome打开的时候需要搭配跨域环境,请参考以前写的文章 http://www.cnblogs.com/wlpower/p/6370377.html,强调一点,如果方案一实现不了,可以根据这个方法 :

版本号49之后的chrome跨域设置

chrome的版本升到49之后,跨域设置比以前严格了,在打开命令上加--disable-web-security之后还需要给出新的用户个人信息的目录。众所周知chrome是需要用gmail地址登录的浏览器,登录后就会生成一个存储个人信息的目录,保存用户的收藏、历史记录等个人信息。49版本之后,如果设置chrome浏览器为支持跨域模式,需要指定出一个个人信息目录,而不能使用默认的目录,估计是chrome浏览器怕用户勿使用跨域模式泄露自己的个人信息(主要是cookie,很多网站的登录token信息都是保存在cookie里)。
具体做法为:
1.在电脑上新建一个目录,例如:C:\MyChromeDevUserData
2.在属性页面中的目标输入框里加上   --disable-web-security --user-data-dir=C:\MyChromeDevUserData,--user-data-dir的值就是刚才新建的目录。
3.点击应用和确定后关闭属性页面,并打开chrome浏览器。
再次打开chrome,发现有“--disable-web-security”相关的提示,说明chrome又能正常跨域工作了。

  • 标点坐标数据

  如果是少数标点,可以到百度地图ApI坐标拾取器查找。

  如果是很多个,比如这些:

要是有坐标文件,就很方便,要是没有,只能一个一个找,四千八百多个坐标,我跟我另个同事找了好几天。。。

然后就是Excel表格数据转变成我们需要的格式:

有多种方法,一是:网上有在线Excel转换json格式,可以自动转换,只是坐标数据转换不是所需要的格式。另外的呢,可以跟后端沟通,把Excel上传数据库,然后以json格式传出来。(这些数据困扰了我一天多。。。)

准备工作已经好了,接下来开始页面内容:

1   2   3      4       
5 6 7 8 9 10 11 12
13
14 193 194

效果图如下:

  

 

具体的echarts配置请参考echarts文档http://echarts.baidu.com/option.html#title

另一种地图标点可以试着做一下哦!

 

二、折线图


 

 折线图的准备工作只是下载echarts文件。

以下是代码:

1         option = {  2             //这里如果不想用echart自动配置的颜色,可以设定一下  3             color: ['#2ec7c9', '#b7a3de', '#5ab1ef', '#febd87'],  4   5             tooltip: {  6                 //触发类型  7                 trigger: 'axis'  8             },  9             legend: { 10                 data:['交易额','交易笔数','卡均交易额','卡均交易笔数'], 11                 top:"3%" 12             }, 13             grid: { 14                 15                 left: '3%', 16                 right: '4%', 17                 bottom: '10%', 18                 containLabel: true 19                20             }, 21             toolbox: { 22                 feature: { 23                   dataView:{ 24                     iconStyle:{ 25                       normal:{ 26                         borderColor:'#d87f3f' 27                       } 28                     } 29                   }, 30                   restore:{ 31                     iconStyle:{ 32                       normal:{ 33                         borderColor:'#2a95ff' 34                       } 35                     } 36                   }, 37                   38                   magicType: { 39                       type: ['line', 'bar'], 40                       iconStyle:{ 41                       normal:{ 42                         borderColor:'#54c954' 43                       } 44                     } 45                   }, 46                   //保存图片 47                   saveAsImage: { 48                     iconStyle:{ 49                       normal:{ 50                         borderColor:'#4b0082' 51                       } 52                     } 53                   } 54                 }, 55                right:'6%', 56                top:'3%' 57             }, 58             xAxis: { 59                 type: 'category', 60                 boundaryGap: false, 61                 axisLine:{ 62                   show:true, 63                   //可以给坐标轴设定颜色 64                   lineStyle:{ 65                     color:"#008acd", 66                     width:2, 67                     type:'solid' 68                   } 69                 }, 70  71                 data: ['周一','周二','周三','周四','周五','周六','周日'] 72             }, 73             yAxis: { 74                 type: 'value', 75                  axisLine:{ 76                   show:true, 77                   lineStyle:{ 78                     color:"#008acd", 79                     width:2, 80                     type:'solid' 81                   } 82                 }, 83             }, 84             series: [ 85                 { 86                     name:'交易额', 87                     type:'line', 88                     stack: '总量', 89                     data:[120, 132, 101, 134, 90, 230, 210] 90                 }, 91                 { 92                     name:'交易笔数', 93                     type:'line', 94                     stack: '总量', 95                     data:[220, 182, 191, 234, 290, 330, 310] 96                 }, 97                 { 98                     name:'卡均交易额', 99                     type:'line',100                     stack: '总量',101                     data:[150, 232, 201, 154, 190, 330, 410]102                 },103                 {104                     name:'卡均交易笔数',105                     type:'line',106                     stack: '总量',107                     data:[320, 332, 301, 334, 390, 330, 320]108                 }109             ]110         };

 

值得注意以下:如果想要图表自适应,跟bootstrap连用,千万别忘了这句话:

window.onresize = function(){          myChart.resize();        }

 

三、饼图


 

给出这张设计图,难点应该是外面的圈了吧!

      

这里问了echarts是群里的大神,然后看了配置文档,做了出来,(思想是做了两个饼图,大的是饼图中的圆形图)贴出代码:

1  option = { 2             color :['#2ec7c9','#b6a2de','#5ab1ef','#ffb980','#d87a80','#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa','#07a2a4'], 3             title : { 4                 text: '交易额前10位卡产品', 5                 subtext: '单位:万', 6                 x:'center' 7             }, 8             tooltip : { 9                 trigger: 'item',10                 formatter: "{a} 
{b} : {c} ({d}%)"11 },12 13 series : [14 {15 name: '',16 type: 'pie',17 radius : '60%',18 center: ['50%', '50%'],19 data:[20 {value:335, name:'卡1'},21 {value:310, name:'卡2'},22 {value:234, name:'卡3'},23 {value:135, name:'卡4'},24 {value:1548, name:'卡5'},25 {value:335, name:'卡6'},26 {value:111, name:'卡7'},27 {value:222, name:'卡8'},28 {value:135, name:'卡9'},29 {value:321, name:'卡10'},30 {value:135, name:'其他'},31 ],32 itemStyle: {33 emphasis: {34 shadowBlur: 10,35 shadowOffsetX: 0,36 shadowColor: 'rgba(0, 0, 0, 0.5)'37 }38 },39 markArea:{40 itemStyle:{41 normal:{42 43 borderColor:'#000',44 borderType:'solid'45 }46 }47 }48 },49 {50 51 type: 'pie',52 //因为是需要圆形,所以提示框之类的都不显示53 tooltip: {54 show: false55 },56 hoverAnimation: false, //鼠标移入变大57 radius: ['65%', '65.5%'], //圆心空出的大小58 itemStyle: {59 normal: {60 label: {61 show: false,62 position: 'outside'63 },64 labelLine: {65 show: false,66 length: 100,67 smooth: 0.568 },69 borderWidth: 5,70 shadowBlur: 4071 72 73 }74 },75 data: [{76 value: 077 78 }]79 }80 ]81 };

 

echarts图表很有趣,对数据可视化感兴趣的可以体验体验,看着一些大神做出来的图表,佩服的五体投地。贴张图分享下~

  

  网址:http://gallery.echartsjs.com/explore.html#sort=rank~timeframe=all~author=all   

 

 

                                                                    5.5 星期五     【完】

转载于:https://www.cnblogs.com/wlpower/p/6813501.html

你可能感兴趣的文章
jQuery实现自定义checkbox和radio样式
查看>>
Log4j2之Appenders
查看>>
我的家庭私有云计划-20
查看>>
SFTP开启日志
查看>>
HttpClientUtil-用于后台发起请求
查看>>
ASP.NET(C#)Excel导入Dataset的出现数据值丢失问题
查看>>
我的友情链接
查看>>
『Data Science』R语言学习笔记,获取数据
查看>>
rails中n秒页面自动跳转
查看>>
我的友情链接
查看>>
忘记root用户密码怎么办?
查看>>
esxi定时任务
查看>>
Scaffold-DbContext
查看>>
关于VMware Workstation主机列表问题求教
查看>>
配置管理小报101021:给ubuntu加监控
查看>>
qml文字滚动效果的封装,实现方式运用的qml中提供的动画效果,另一种实现方式也可以使用定时器修改控件的坐标来实现...
查看>>
标准C++实现任务队列
查看>>
jdbc url
查看>>
刷leetcode第704题-二分查找
查看>>
文件共享服务
查看>>