echarts折线图多条折线x轴不同,以及vue中引用

需求:echarts绘制多条折线,x轴间隔不同。

效果图:

数据格式

分析:因为每条线的x轴不同,所以普通的渲染方式无法实现。解决办法是series的数据格式 -- [ [x,y],[x,y] ].

核心代码:

1)小技巧--js时间格式化封装    如果没有引es6,可以直接做封装 function(time){}

[html] view plain copy

//时间格式化  

export constdateconvert = (time) => {  

time=new Date(time)  

vardatetimeFormat = "yyyy-MM-dd hh:mm:ss";  

varo = {  

      "M+": time.getMonth() + 1, //月份   

      "d+": time.getDate(), //日   

      "h+": time.getHours(), //小时   

      "m+": time.getMinutes(), //分   

      "s+": time.getSeconds(), //秒   

      "q+": Math.floor((time.getMonth() + 3) / 3), //季度   

      "S": time.getMilliseconds() //毫秒   

  };  

  if (/(y+)/.test(datetimeFormat)) {  

datetimeFormat = datetimeFormat.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length));  

  }  

  for (var k in o)  

      if (new RegExp("(" + k + ")").test(datetimeFormat))   

datetimeFormat = datetimeFormat.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));  

  return datetimeFormat;  

}  

//dateconvert('2018-05-19T01:00:00Z')   --调用  

2) option样式设置  --根据需求自己定义样式

[html] view plain copy

option:{  

               tooltip: {              --鼠标滑过提示框样式  

                   trigger: 'item',  

                   padding: 10,  

                   backgroundColor: 'rgba(9, 131, 195, 0.53)',  

                   formatter:function(a){  

return a.data[0]+'
'+a.seriesName+'--'+a.data[1]+'分'  

                   },  

               },  

           legend:{               --图例样式  

               orient: 'vertical',  

               y: 'top',  

               top:'5%',    

               left: 'right',     

               textStyle: {  

                   color: '#fff'          // 图例文字颜色  

               }  

           },  

           grid: {                   --折线位置  

               top:'8%',  

               right: '10%',  

           },  

           xAxis: {                  --x轴样式  

               type: 'time',  

               name: '时间',  

               nameTextStyle: {fontSize: 15, color: '#fff'},  

               // boundaryGap: false,  

               boundaryGap: [0, 100],  

               axisLine: {  

               lineStyle: {  

                   color: "#7bdeff",  

               }  

               },  

               axisTick: {  

               show: true  

               },  

               splitLine: {  

                   show: true,   

                   //  改变轴线颜色  

                   lineStyle: {           

                       color: '#1f516d'  

                   }                              

               },  

           },  

           yAxis: {                         --y轴样式  

               type:"value",  

               name: "得分",  

               nameTextStyle: {fontSize: 15, color: '#fff'},  

               axisLabel: {  

               show: true  

               },  

               axisLine: {  

               lineStyle: {  

                   color: "#7bdeff",  

               }  

               },  

               axisTick: {  

               show: true  

               },  

               splitLine: {  

               lineStyle: {  

                   color: "#1f516d",  

               }  

               },  

           },  


           calculable: true,  

           color:["red","#34affd",'#ff5555','#ffde00','#5af4ce','#d050ff','#CD5C5C','#4DCD53','#F1AB27','#B96CD3'],  --折线颜色  

           series:[  


           ],  

           animation: false     

           }  

3)封装图表

[html] view plain copy

drawLine(){  

    // 基于准备好的dom,初始化echarts实例  

letmyChart = echarts.init(document.getElementById('lineChart'))  

    // 绘制图表  

    myChart.setOption(this.option)  

 }  

4)数据处理 

思路: 定义数组最开始[比赛开始时间,0],数组末尾[比赛结束时间,最后的得分],数组中间数据 [得分时间,得分]

         数据格式[ [X,Y],[X,Y]]

        数据处理成这样就能正常展示

下面的操作是处理数据为上面图片的格式,可以根据自己的情况处理

[html] view plain copy

trend(getCookie('user_id')).then(res=>{  

if(res.data.status_code==0){  

           console.log(res)  

this.lineSeries=[]  

letdatas=res.data.data  

for ( vari = 0; i < datas.length; i++) {    


vardata = [];  

vartemp=null  

vardateTime = dateconvert('2018-05-19T01:00:00Z');  

varscore = 0;  

               data.push([dateTime, 0]);  

for (varj = 0; j < datas[i].score.length; j++) {  

dateTime = dateconvert(datas[i].score[j].time);  

score=datas[i].score[j].score  

// for (vark = 0; k <= i; k++) {  

//score = datas[i].data[k].score + score;  

                   // }  

                   data.push([dateTime, score]);  

               }  

if (this.currentTime> dateconvert('2018-05-20T01:00:00Z')) {  

dateTime = dateconvert('2018-05-20T01:00:00Z');  

               } else {  

dateTime = this.currentTime;  

               }  

               data.push([dateTime, data[data.length - 1][1]]);  

temp = {  

                   name: datas[i].group,  

                   type: "line",  

                   data: data  

               };  


               this.option.series.push(temp)  



           }  


       this.drawLine();  

    }else{  

           this.$message({  

               message: res.data.msg,  

               type: 'warning',  

               duration:1500,  

               center:true,  

               customClass:'messageModal'  

           });  

    }  



})  

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 心酸的时候,爱吃巧克力, 以为嚼上一颗,一切都会变甜。 失落的时候,爱喝咖啡, 以为喝上一杯,一切都会变暖。
    林涧小溪阅读 224评论 0 0
  • 杨晓东,江湖人称老杨,核桃品牌策划CEO,核桃帮创始人 这 | 是 | 开 | 窍 | 推 | 出 | 的 | 第...
    老杨开窍阅读 341评论 0 0
  • 我出生在一个贫穷的小山村里,跟祖祖辈辈的村里人一样,我没有见过什么世面,也不敢拥有什么梦想。只盼望着老天爷风...
    打油诗人张正义阅读 25,634评论 10 8
  • 到照相馆给儿子拍百岁照,他一会哭一会笑一会睡一会尿……为了让他看镜头,我、他妈妈、摄影师,轮流上阵,一会哭脸,一会...
    申振柱阅读 215评论 0 5