废话不多说,上代码,备注以及需要注意的点都在代码里
<div ref="echartsLine" style="width:1000px;height:500px;"></div>
// 字符串时间转化成时间戳
getDateFromString(str) {
var reg = /^(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
var temp = str.match(reg);
var result = "";
if (temp) {
result = new Date(temp[1], temp[2] - 1, temp[3], temp[4], temp[5], temp[6]);
}
return result;
},
initEcharts() {
var myEcharts = echarts.init(this.$refs.echartsLine);
// 横坐标
var startDate = "2022-04-28";
var endDate = "2022-05-07";
let startTime = this.getDateFromString(startDate + " 00:00:00");
let endTime = this.getDateFromString(endDate + " 00:00:00");
var option = {
title: {
text: "固定横轴坐标,包含时分秒刻度,根据数据展示对应图",
subtext: "故事点数",
},
tooltip: {
trigger: "axis",
// 鼠标上移x轴、y轴刻度展示
// axisPointer: {
// type: "cross",
// },
},
toolbox: {
show: true,
feature: {
saveAsImage: {},
},
},
formatter: function(params) {
// console.log(params);
var temp = "";
temp = params[0].data[0] + "<br/>" + "故事点数:" + params[0].data[1];
return temp;
},
xAxis: [
{
// data: diffDate,
//设置类别
type: "time",
interval: 24 * 60 * 60 * 1000, // 固定x轴时间间隔 间隔24小时,也就是一天
// 自己想固定间隔多长时间可以改成自己的间隔时间
min: startTime, // 开始时间时间戳
max: endTime, // 结束时间时间戳 如果实际的最大日期不确定,也可以不设定这个属性
// x轴的字
axisLabel: {
show: true,
showMinLabel: true,
showMaxLabel: true
},
},
],
yAxis: {
type: "value",
axisLabel: {
formatter: "{value} W",
},
axisPointer: {
snap: true,
},
},
visualMap: {
show: false,
dimension: 0,
pieces: [
{
lte: 6,
color: "green",
},
{
gt: 6,
lte: 8,
color: "red",
},
{
gt: 8,
lte: 14,
color: "green",
},
{
gt: 14,
lte: 17,
color: "red",
},
{
gt: 17,
color: "green",
},
],
},
series: [
{
name: "Electricity",
type: "line",
smooth: true,
// data的格式 [[实际日期:数值],[[实际日期:数值]]]
// 不需要属性名
data:
[["2022-04-28 2:12:58", "0"],
["2022-04-29 23:12:58", "50"],
["2022-04-30 12:00:00", "200"],
["2022-05-01", "111"],
["2022-05-02", "500"],
["2022-05-03", "123"],
["2022-05-04", "333"]],
],
},
],
};
myEcharts.setOption(option);
}