效果图
代码
< div id = " line1" style = " width : 100%; height : 100px; " > </ div>
const generateChart = ( cData, home, speed, lineColor, eraseWidth ) => {
const chartDom = document. getElementById ( home) ;
let myChart = echarts. init ( chartDom) ;
let option;
let splitPointer = 0 ;
const EraseWindow = eraseWidth;
let counter = 0 ;
const randomData = ( ) => {
let value = cData[ counter % cData. length] ;
counter++ ;
return {
name : counter % cData. length,
value : [ counter % cData. length, Math. round ( value) ]
} ;
}
let data = [ ] ;
for ( var i = 0 ; i < cData. length; i++ ) {
data. push ( randomData ( ) ) ;
}
option = {
grid : {
top : 0 ,
left : 10 ,
right : - 80 ,
bottom : 0 ,
} ,
xAxis : {
type : 'value' ,
show : false
} ,
yAxis : {
type : 'value' ,
show : false
} ,
series : [
{
name : '1' ,
type : 'line' ,
showSymbol : false ,
hoverAnimation : false ,
data : data,
lineStyle : {
color : lineColor
}
} ,
{
name : '1' ,
type : 'line' ,
showSymbol : false ,
hoverAnimation : false ,
data : data,
lineStyle : {
color : lineColor
}
}
]
} ;
setInterval ( function ( ) {
splitPointer = data. length - ( counter % data. length) ;
splitPointer = data. length - splitPointer;
var p1 = data. slice ( 0 , splitPointer) ;
var p2 = data. slice ( splitPointer + EraseWindow) ;
p2. pop ( ) ;
counter += speed;
myChart. setOption ( {
series : [
{
data : p1
} ,
{
data : p2
}
]
} ) ;
} , 1 ) ;
option && myChart. setOption ( option) ;
return myChart;
}