<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Echarts</title>
<script src="./js/echarts.min.js"></script>
</head>
<body>
<!--准备一个容器div,放置图表-->
<!--Echarts会根据容器的大小来显示图标的大小-->
<!--margin:0 auto 居中-->
<div id="demo1" style="width: 600px;height: 400px; margin:0 auto"></div>
<!--使用javascript绘制图表-->
<script>
//初始化绘制图标的echarts实例
//参数是我们要绘制图标的位置
var myChart = echarts.init(document.querySelector("#demo1"));//我们引入的echarts.min.js会帮我们创建一个echarts对象
//初始化数据
let data = []
var now = new Date(2020,3,1);
var oneDay = 24*3600*1000;//一天毫秒数
var value = Math.random()*1000;
for (var i = 0; i<20; i++){
now = new Date(now.getTime() + oneDay);//每一次生成新的一天, now.getTime()是将时间转化为毫秒数
value = value + Math.random()*21;
data.push({
name:now.toString(),//时间
value:[//时间的值
[now.getFullYear(),now.getMonth(),now.getDate()].join('/'),//设置我们的x轴,用/进行拼接
Math.round(value),//设置我们的y轴,数值即随机出来的value的整数部分
]
});
}
console.log(data)
//指定图表的配置
var option = {
//配置图表的标题
title:{
text:"折线图-动态折线图"
},
//设置鼠标悬浮在图表折线时显示提示的内容:显示具体的数据
tooltip:{
//按照水平轴的标准来显示
trigger:'axis',
//设置显示的内容
formatter:function (params) {
console.log(params)
value = params[0].data.value
x = value[0]
y = value[1]
// return '时间:${x} 股票价格:${y}'
return "时间:" + x + "--" + "股票价格:" + y
},
//设置坐标轴的指示器
axisPointer:{
//鼠标悬浮时是否有动画
animation:false
}
},
//配置x轴
xAxis: {
//类型的种类:分类(category),数值类型(value),对数类型(log),时间类型(time)
type:"time",//设置时间类型
splitLine:{//配置我们的网格
show:false //设置网格线不显示
},
data:data[0].name
},
//配置y轴
yAxis: {
type: "value",//设置类型为数值型
splitLine:{//配置我们的网格
show:false //设置网格线不显示
},
//设置坐标轴两边留白
boundaryGap:[0,'100%'], //不留白,设置为0,占比100%
},
//设置我们的数据
series:[
{
name:'股票数据',
type:"line",//类型为折线
data:data//设置我们的数据
}
]
}
//给我们的myChart图标实例设置他的配置
myChart.setOption(option);
//让我们的数据动起来
setInterval(()=>{
now = new Date(now.getTime() + oneDay)
value = value + Math.random() * 21
//先删除一个数据
data.shift()
//再添加一个数据
data.push({
name:now.toString(),//时间
value:[//时间的值
[now.getFullYear(),now.getMonth(),now.getDate()].join('/'),//设置我们的x轴,用/进行拼接
Math.round(value),//设置我们的y轴,数值即随机出来的value的整数部分
]
});
myChart.setOption({
series: [{
data:data
}]
})
},1000)//间隔1s
</script>
</body>
</html>