话不多说,老规矩,先上图,实现echarts实现散点图,x轴数据为时间年月日。

实现代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>五分钟上手之散点图</title>
  6. <!-- 引入 echarts.js -->
  7. <script src="js/echarts.min.js"></script>
  8. <script src="js/jquery-1.11.3.js"></script>
  9. </head>
  10. <body>
  11. <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
  12. <div style="height: 500px;width: 1000px;" id="Scatter"></div>
  13. <script type="text/javascript">
  14. $(document).ready(function() {
  15. var MyScatter = echarts.init(document.getElementById('Scatter'));
  16. var data = [
  17. ['2012-03-01',
  18. 1,
  19. "翻身"
  20. ],
  21. [
  22. '2013-06-01',
  23. 0.5,
  24. "没翻身"
  25. ],
  26. [
  27. '2017-03-02',
  28. 0.5,
  29. "翻身"
  30. ]
  31. ];
  32. var textStyle = {
  33. color: '#333',
  34. fontStyle: 'normal',
  35. fontWeight: 'normal',
  36. fontFamily: '微软雅黑',
  37. fontSize: 14,
  38. };
  39. option = {
  40. xAxis: {
  41. type: 'time',
  42. name: '时间轴',
  43. },
  44. yAxis: {
  45. type: 'value',
  46. name: '次数值',
  47. max: 1,
  48. min: 0,
  49. },
  50. series: [{
  51. name: '',
  52. data: data,
  53. type: 'scatter',
  54. symbolSize: 40
  55. }]
  56. };
  57. MyScatter.setOption(option);
  58. });
  59. </script>
  60. </body>
  61. </html>

echarts学习过程中,也会遇到很多坑,要不断的进行试验和钻研,才会发现其中的奥妙,下午去了echarts官网看了一遍参数文档,收获颇丰。另外,附上一副散点图所有参数的详解。

  1. <!--
  2. 1、首先需要下载包echarts.js,然后引入该包
  3. -->
  4. <!DOCTYPE html>
  5. <html>
  6. <header>
  7. <meta charset="utf-8">
  8. <!--引入 ECharts 文件-->
  9. <script src="echarts.js"></script>
  10. </header>
  11. <!--
  12. 2、基本配置
  13. //第一步调用echarts初始化函数,传入dom对象产生echarts的instance
  14. -->
  15. <body>
  16. <!--为 ECharts 准备一个具备大小(宽高)的 DOM-->
  17. <div id="main" style="width: 600px;height:400px;"></div>
  18. <script type="text/javascript">
  19. // 基于准备好的dom,初始化echarts实例
  20. var myChart = echarts.init(document.getElementById('main'));
  21. //第二步构造数据
  22. var data1 = [];//数据区域缩放组件
  23. var data2 = [];
  24. var data3 = [];
  25. //构造随机数
  26. var random = function (max){
  27. return (Math.random() * max).toFixed(3);
  28. };
  29. //将数据装载到数组中
  30. for (var i = 0; i < 500; i++) {
  31. data1.push([random(15), random(10), random(1)]);
  32. data2.push([random(10), random(10), random(1)]);
  33. data3.push([random(15), random(10), random(1)]);
  34. };
  35. //3、配置option项
  36. //第三步就是使用echarts的option进行参数的配置
  37. option = {
  38. animation: false,//是否开启动画,默认是开启的,true是开启的,false是关闭的
  39. //图例
  40. legend: {
  41. data: [
  42. {
  43. name:'scatter2',
  44. icon:'circle',//强制设置图形长方形
  45. textStyle:
  46. {color:'red'}//设置文本为红色
  47. },
  48. {
  49. name:'scatter',
  50. icon:'rectangular',//强制设置图形为长方形
  51. textStyle:
  52. {color:'red'}//设置文本为红色
  53. },
  54. {
  55. name:'scatter3',
  56. icon:'rectangular',//强制设置图形为长方形
  57. textStyle:
  58. {color:'red'}//设置文本为红色
  59. }
  60. ],
  61. zlevel:5,//设置Canvas分层 zlevel值不同会被放在不同的动画效果中,传说中z值小的图形会被z值大的图形覆盖
  62. z:3,//z的级别比zlevel低,传说中z值小的会被z值大的覆盖,但不会重新创建Canvas
  63. left:'center',//图例组件离容器左侧的距离。可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'。
  64. //如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
  65. top:'top',
  66. //rigth:'',
  67. //bottom:''
  68. width:'auto',//设置图例组件的宽度,默认值为auto,好像只能够使用px
  69. orient:'horizontal',//设置图例组件的朝向默认是horizontal水平布局,'vertical'垂直布局
  70. align:'auto',//'left' 'right'设置图例标记和文本的对齐,默认是auto
  71. //默认自动,根据组件的位置和 orient 决定,当组件的 left 值为 'right' 以及纵向布局(orient 为 //'vertical')的时候为右对齐,及为 'right'。
  72. padding:[20,20,20,20],//设置图例内边距 默认为上下左右都是5,接受数组分别设定
  73. itemGap:20,//图例每项之间的间隔,横向布局时为水平间隔,纵向布局时为纵向间隔。默认为10
  74. itemWidth:30,//图例标记的图形宽度,默认为25
  75. itemHeight:20,//图例标记的图形高度,默认为14
  76. //formatter:'Legend {name}'//图例文本的内容格式器,支持字符串模板和回调函数两种形式。
  77. formatter:function(name){
  78. return 'Legend '+name;
  79. },
  80. //selectedMode:false,//图例的选择模式,默认为开启,也可以设置成single或者multiple
  81. //selectedMode:'single'//图例的选择模式,默认为开启,也可以设置成single或者multiple
  82. selectedMode:'multiple',//图例的选择模式,默认为开启,也可以设置成single或者multiple
  83. inactiveColor:'#ccc',//图例关闭时的颜色,默认是'#ccc'
  84. selected:{
  85. 'scatter2':true,//设置图例的选中状态
  86. 'scatter':false,
  87. 'scatter3':false
  88. },
  89. tooltip: {//图例的tooltip 配置,默认不显示,可以在文件较多的时候开启tooltip对文字进行剪切
  90. show: true
  91. },
  92. //backgroundColor:'rgb(128, 128, 128)',//图例的背景颜色,默认为透明的
  93. //borderColor:'rgb(10, 150, 200)',//图例的边框颜色
  94. //borderWidth:2,//图列的边框线宽,默认为1
  95. shadowBlur:30,//图例阴影的模糊大小
  96. shadowColor:'rgb(128, 128, 56)'//阴影的颜色
  97. },
  98. //鼠标移上去的提示
  99. tooltip: {
  100. },
  101. //网格
  102. grid:{
  103. show:true,//是否显示直角坐标系的网格,true显示,false不显示
  104. left:100,//grid组件离容器左侧的距离
  105. containLabel:false,//grid 区域是否包含坐标轴的刻度标签,在无法确定坐标轴标签的宽度,容器有比较小无法预留较多空间的时候,可以设为 true 防止标签溢出容器。
  106. },
  107. //X轴
  108. xAxis: {
  109. type: 'value',
  110. min: 'dataMin',
  111. name:'xAxis',//x轴的名称
  112. nameLocation:'end',//x轴名称的显示位置'middle','end'
  113. nameRotate:30,//坐标轴名字旋转角度值
  114. max: 'dataMax',
  115. gridIndex:0,//x轴所在的grid的索引,默认位于第一个grid
  116. //offset:10,//x轴相对默认位置的偏移,在一个grid中含有多个grid的时候有意义
  117. type:'value',//数值轴适用于连续型数据
  118. //'category'类目轴 适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
  119. //'time' //时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
  120. //'log' 对数轴。适用于对数数据。
  121. position:'top',//x轴位于grid的上方还是下方,默认为bottom在下方
  122. inverse:false,//是否反向坐标
  123. boundaryGap:['20%','20%'],//坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。
  124. //类目轴中 boundaryGap 可以配置为 true 和 false。默认为 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
  125. //非类目轴,包括时间,数值,对数轴,boundaryGap是一个两个值的数组,分别表示数据最小值和最大值的延伸范围,可以直接设置数值或者相对的百分比,在设置 min 和 max 后无效
  126. splitLine: {
  127. show: true
  128. }
  129. },
  130. //Y轴
  131. yAxis: {
  132. type: 'value',
  133. min: 'dataMin',
  134. max: 'dataMax',
  135. splitLine: {
  136. show: true
  137. }
  138. },
  139. //数据区域缩放、滚动条
  140. dataZoom: [
  141. {
  142. type: 'slider',
  143. show: true,
  144. xAxisIndex: [0],
  145. start: 1,
  146. end: 35
  147. },
  148. {
  149. type: 'slider',
  150. show: true,
  151. yAxisIndex: [0],
  152. left: '93%',
  153. start: 29,
  154. end: 36
  155. },
  156. {
  157. type: 'inside',
  158. xAxisIndex: [0],
  159. start: 1,
  160. end: 35
  161. },
  162. {
  163. type: 'inside',
  164. yAxisIndex: [0],
  165. start: 29,
  166. end: 36
  167. }
  168. ],
  169. //visualMap
  170. visualMap: {
  171. //type: 'continuous',//类型为连续型。
  172. min: 0,//指定 visualMapContinuous 组件的允许的最小值。'min' 必须用户指定。[visualMap.min, visualMax.max] 形成了视觉映射的『定义域』。
  173. max: 1000000,//指定 visualMapContinuous 组件的允许的最大值。'max' 必须用户指定。[visualMap.min, visualMax.max] 形成了视觉映射的『定义域』。
  174. //setOption 改变 min、max 时 range 的自适应
  175. text:['High','Low'],//两端的文本['High', 'Low']
  176. range:[0, 800000],//指定手柄对应数值的位置
  177. calculable:true,//表示是否设置了拖拽用的手柄,如果为false则拖拽结束时,才更新视图。如果为ture则拖拽手柄过程中实时更新图表视图。
  178. realtime: false,//表示拖拽时是否实时更新
  179. inverse:false,//是否翻转组件
  180. precision:2,//展式的小数点精度
  181. itemWidth:30,//长条的宽度,默认为20
  182. itemHeight:200,//长条的高度,默认是140
  183. align:'left',//组件中手柄和文字的摆放位置'auto' (orient 为 horizontal 时有效) 'left' 'right' (rient 为 vertical 时有效。)'top' 'bottom'
  184. textGap:20,//两端文字与主体之间的距离
  185. show:true,//是否显示数据映射组件
  186. dimension:0,//指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,
  187. seriesIndex:0,//指定去哪个系列的数据
  188. hoverLink:true,//打开 hoverLink 功能时,鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮。
  189. //反之,鼠标悬浮到图表中的图形元素上时,在 visualMap 组件的相应位置会有三角提示其所对应的数值。
  190. //inRange: {//能定义目标系列(参见 visualMap-continuous.seriesIndex)视觉形式,也同时定义了 visualMap-continuous 本身的视觉样式。
  191. //视觉通道
  192. //inRange 中,可以有任意几个的『视觉通道』定义(如 color、symbolSize 等)。这些视觉通道,会被同时采用。
  193. //一般来说,建议使用 透明度(opacity) ,而非 颜色透明度(colorAlpha) (他们细微的差异在于,前者能也同时控制图元中的附属物(如 label)的透明度,而后者只能控制图元本身颜色的透明度)。
  194. //视觉映射的方式:支持两种方式:线性映射、查表映射。
  195. //线性映射 表示 series.data 中的每一个值(dataValue)会经过线性映射计算,从 [visualMap.min, visualMap.max] 映射到设定的 [visual value 1, visual value 2] 区间中的某一个视觉的值(下称 visual value)。
  196. //查表映射 表示 series.data 中的所有值(dataValue)是可枚举的,会根据给定的映射表查表得到映射结果。
  197. /*color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  198. symbolSize: [30, 100]//图元的大小。*/
  199. // 表示 目标系列 的视觉样式。
  200. //},
  201. /*target: {
  202. inRange: {
  203. symbol: 图元的图形类别。
  204. symbolSize: 图元的大小。
  205. color: 图元的颜色。
  206. colorAlpha: 图元的颜色的透明度。
  207. opacity: 图元以及其附属物(如文字标签)的透明度。
  208. colorLightness: 颜色的明暗度,参见 HSL。
  209. colorSaturation: 颜色的饱和度,参见 HSL。
  210. colorHue: 颜色的色调,参见 HSL。
  211. color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  212. symbolSize: [60, 200]
  213. }
  214. },*/
  215. // 表示 visualMap-continuous 本身的视觉样式。
  216. /*controller: {visualMap 组件中,控制器 的 inRange outOfRange 设置。如果没有这个 controller 设置,控制器 会使用外层的 inRange outOfRange 设置;如果有这个 controller 设置,则会采用这个设置。适用于一些控制器视觉效果需要特殊定制或调整的场景。
  217. inRange: {
  218. symbolSize: [30, 100],
  219. symbol:['circle', 'rect', 'diamond'],
  220. color: ['#121122', 'rgba(3,4,5,0.4)', 'red']
  221. }
  222. },*/
  223. type:'piecewise',//表示分段型视觉映射组件(visualMapPiecewise)
  224. splitNumber:10,//对于连续型数据,自动切分成几段默认是5段
  225. pieces: [//每一段的范围,以及每一段的文字,以及每一段的特别的样式
  226. {min: 1500}, // 不指定 max,表示 max 为无限大(Infinity)。
  227. {min: 900, max: 1500},
  228. {min: 310, max: 1000},
  229. {min: 200, max: 300},
  230. {min: 10, max: 200, label: '10 到 200(自定义label)'},
  231. {value: 123, label: '123(自定义特殊颜色)', color: 'grey'}, // 表示 value 等于 123 的情况。
  232. {max: 5} // 不指定 min,表示 min 为无限大(-Infinity)。
  233. ],
  234. min:2,//指定 visualMapPiecewise 组件的最小值。
  235. max:5,//指定 visualMapPiecewise 组件的最大值。
  236. selectedMode:'multiple',//(多选)(单选)
  237. inverse:false,//是否反转
  238. precision:2,//数据展示的小数精度
  239. itemWidth:20,//图形的宽度,即每个小块的宽度。
  240. itemHeight:20,//图形的高度,即每个小块的高度
  241. text:['High', 'Low'],//两端的文本
  242. align:'auto',// 自动决定。'left' 图形在左文字在右。'right' 图形在右文字在左。
  243. textGap:20,//两端文字主体之间的距离
  244. itemGap:10,//每两个图元之间的间隔距离,单位为px。
  245. itemSymbol:'circle',//图形的形状 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  246. show:true,//是否显示组件
  247. dimension:0,//指定用数据的『哪个维度』,映射到视觉元素上。
  248. seriesIndex:0,//指定取哪个系列的数据,即哪个系列的 series.data。
  249. hoverLink:true,//打开 hoverLink 功能时,鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮。
  250. //inRange://参考visualMapContinuous
  251. //outOfRange://参考visualMapContinuous*/
  252. /*categories: [//用于表示离散型数据(或可以称为类别型数据、枚举型数据)的全集。
  253. 'Demon Hunter', 'Blademaster', 'Death Knight', 'Warden', 'Paladin'
  254. ],*/
  255. /*inRange: {
  256. // visual value 可以配成 Object:
  257. color: {
  258. 'Warden': 'red',
  259. 'Demon Hunter': 'black',
  260. '': 'green' // 空字串,表示除了'Warden'、'Demon Hunter'外,都对应到 'green'。
  261. },
  262. // visual value 也可以只配一个单值,表示所有都映射到一个值,如:
  263. color: 'green',
  264. // visual value 也可以配成数组,这个数组须和 categories 数组等长,
  265. // 每个数组项和 categories 数组项一一对应:
  266. color: ['red', 'black', 'green', 'yellow', 'white']
  267. },*/
  268. /*outOfRange:{//定义 在选中范围外 的视觉元素。
  269. color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  270. symbolSize: [30, 100]
  271. },
  272. olor: ['orangered','yellow','lightskyblue']*/
  273. },
  274. //装载数据
  275. series: [
  276. {
  277. name: 'scatter',
  278. type: 'scatter',
  279. itemStyle: {
  280. normal: {
  281. opacity: 0.8
  282. }
  283. },
  284. symbolSize: function (val) {
  285. return val[2] * 40;
  286. },
  287. data: data1
  288. },
  289. {
  290. name: 'scatter2',
  291. type: 'scatter',
  292. itemStyle: {
  293. normal: {
  294. opacity: 0.8
  295. }
  296. },
  297. symbolSize: function (val) {
  298. return val[2] * 40;
  299. },
  300. data: data2
  301. },
  302. {
  303. name: 'scatter3',
  304. type: 'scatter',//散点图
  305. itemStyle: {
  306. normal: {
  307. opacity: 0.8,
  308. }
  309. },
  310. symbolSize: function (val) {
  311. return val[2] * 40;
  312. },
  313. data: data3
  314. }
  315. ]
  316. };
  317. // 使用刚指定的配置项和数据显示图表
  318. myChart.setOption(option);
  319. </script>
  320. </body>
  321. </html>

注:

原文作者:祈澈姑娘技术博客:https://www.jianshu.com/u/05f416aefbe1
90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。

公众号回复“1”,拉你进程序员技术讨论群.

【前端图表】echarts实现散点图x轴时间轴的更多相关文章

  1. Android 时间轴的实现

    时间轴 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝的物流顺序就是一个时间轴(如图),想必大家都不陌生. 时间轴的初探 初次见到这种UI,感觉整个布局 ...

  2. 推荐5款实用的jQuery时间轴插件

    1.使用CSS3和jQuery制作的水平时间轴 这是一个可以在PC和移动端表现非常棒的水平时间轴,它由上部水平滑块和下部时间点对应的内容区块,点击时间轴上的时间点,下部内容会滑动到对应的内容区块.使用 ...

  3. 【前端图表】echarts散点图鼠标划过散点显示信息

    在做项目的过程中,总会遇到这样或者那样的bug,这个时候就要看自己的动手能力有多强了,着手解决了一个bug之后,整个人都感觉很开心,端午下班之前遇到了一个小问题,echarts散点图鼠标划过散点的时候 ...

  4. echarts之简单的入门——【一】做个带时间轴的柱状统计图

    百度Echarts 官网首页  http://echarts.baidu.com/ 配置项手册 http://echarts.baidu.com/option.html#title GL配置项手册 h ...

  5. echarts使用结合时间轴timeline动态刷新案例

    1.echarts简介 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fire ...

  6. 开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts

    开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts 本人项目中最近有需要图表的地方,偶然发现一款超级漂亮的动态图标js图表控件,分享给大家,觉得好用的就看一下.更多更漂亮的演示大家可 ...

  7. ECharts实例开发学习笔记二——时间轴

    记录一下ECharts时间轴的使用,首先是照着官方的示例做一遍,在这里不要忘了引入timelineOption.js,后面介绍如何动态创建时间轴的记录数,即根据需求可伸缩显示有多少天或者年月等轴标记数 ...

  8. 08. Web大前端时代之:HTML5+CSS3入门系列 ~ QQ空间时间轴

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 大前端系列,主要就是使用CSS3.0来实现,注释我已经打 ...

  9. HighCharts 图表插件 自定义绑定 时间轴数据

    HighCharts 图表插件 自定义绑定 时间轴数据,解决时间轴自动显示数据与实际绑定数据时间不对应问题! 可能要用到的源码片段:http://code.662p.com/list/14_1.htm ...

随机推荐

  1. vue.js路由vue-router(一)——简单路由基础

    前言 vue.js除了拥有组件开发体系之外,还有自己的路由vue-router.在没有使用路由之前,我们页面的跳转要么是后台进行管控,要么是用a标签写链接.使用vue-router后,我们可以自己定义 ...

  2. PHP抓取网页内容的几种方法

    方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/?para=123'; $html = file_get ...

  3. C# 对Excel操作时,单元格值的读取

    一.Range中Value与Value2的区别 当range("A1:B10")设置为 Currency (货币)和 Date (日期.日期时间)数据类型时,range2将返回对应 ...

  4. 深入浅出WPF 第一部分(3)

    3.2.3 属性元素 <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> ...

  5. 使用Gmail邮箱

    由于国内不能直接访问google,所以其相关产品也不能直接使用.因为Gmail简洁,使用方便,国际上用的人很多.最近发现网易邮箱大师可以直接访问Gmail,所以将方法介绍给大家,如果大家只有访问Gma ...

  6. 运行maven项目出现的报错

    java问题:严重: Error configuring application listener of class org.springframework.web.context.Cont 解决方案 ...

  7. js---03属性操作

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  8. Android Gson解析json工具类封装

    package com.springSecurity.gson; import java.util.ArrayList; import java.util.List; import java.util ...

  9. C# 正整数和非零正整数校验

    /// <summary> /// 1. 校验正整数(包含0) /// </summary> public static bool isInterger(string str) ...

  10. vue2细节变化的用法

    1.v-el和v-ref合并为一个属性:ref 原来:v-el:my-element 现在: ref="myElement", v-ref:my-component 变成了这样:  ...