Bootstrap

echarts 其他样式 折线 重叠_Vue + echarts 折线图各种样式设置

Vue 安装依赖包

npm install echarts --save

在main.js中配置echarts。

import * as echarts from 'echarts';

# 这样设置时可以在项目的任意vue文件下通过this.$echarts进行引用

Vue.prototype.$echarts = echarts;

新建一个echartsDemo.vue文件。设置折线的颜色、类型 等等其他属性

export default {

name: "echartDemo",

data () {

return {}

},

methods: {

initCharts () {

let chartDemo = this.$echarts.init(document.getElementById('chartDemo'));

chartDemo.setOption({

tooltip: {

trigger: 'axis',

// 自定义悬浮框展示的内容。此json对象的内容可自定义,我只是举个例子。{name: '内容标题', value:'可以是任意字符,根据业务需求来吧'}

formatter(params) {

return `内容标题:${params[0].data.name} 数据:${params[0].data.value}`

}

},

// 设置折线图的大小

grid:{

x:25,

y:5,

x2:5,

y2:20,

borderWidth:1

},

xAxis: {

type: 'category',

splitLine : {

lineStyle: {

color: ['red', 'green'], // 设置网格线颜色

width: 1, // 设置网格线宽度

type: 'dashed' //设置线的类型 虚线(dashed)、实线(solid)

},

show: true

},

axisLine:{

lineStyle:{

color:'#FF0000', // 设置x轴线的颜色

type: 'dashed' // 设置x轴线的类型

}

},

// 测试数据,一般通过后天获取数据

data: ['10:05', '10:10', '10:15', '10:20', '10:25', '10:30']

},

yAxis: {

type: 'value',

min: 50, // y轴最小刻度值

max: 100, // y轴最大刻度值

splitLine : {

lineStyle: {

color: ['red', 'green'], // 设置网格线颜色

width: 1, // 设置网格线宽度

type: 'dashed' // 设置网格虚线(dashed)、实线(solid)

},

show: true // 是否显示网格线

},

axisLine: {

lineStyle: {

// 设置y轴颜色

color: '#87CEFA',

type: 'dashed'

}

},

},

series: [{

data: [76, 60, 70, 80, 90, 100],

type: 'line',

smooth: true, // 是否平滑 也可以设置为 0 到 1 的值,表示平滑程度。

symbol: 'circle', //折线点设置为实心点

symbolSize: 30, // 折线点的大小,为了方便观察,设置了30

itemStyle : {

normal : {

color: "yellow", // 设置折线点颜色

lineStyle:{

color:'red' // 设置折线颜色

}

}

},

markLine: {

silent: true,

lineStyle: {

normal: {

color: '#fe1d25' // 设置安全基线颜色

}

},

data: [{

yAxis: 90 // 设置安全基线数值

}],

label: {

normal: {

formatter: '这是安全基线' // 设置安全基线标题

}

},

}

}]

});

}

},

created() {

this.initCharts()

}

}

在element UI的抽屉里加载echarts图表,表格数据、分页查询等等

:cell-style="cellStyleFun" class="main-table">

查看

import axios from 'axios'

export default {

name: "echartDemo",

data () {

return {

page: {

pageNo: 1,

pageSize: 10,

total: 0

},

dialogTableVisible: false,

tableData: []

}

},

mounted () {

// 加载表格

this.load()

},

methods: {

// 设置表格内数据剧中

thStyleFun() {

return 'text-align:center'

},

// 替换td中的字体样式,颜色等等。

cellStyleFun() {

return 'text-align:center;font-size: 14px;font-weight: bold;color:#55C2FF'

},

// 分页查询

load (pageNo = 1) {

this.page.pageNo = pageNo;

axios.post(`/api/cycle/query?pageNo=${this.page.pageNo}&pageSize=${this.page.pageSize}`, this.query).then((resp) => {

this.page.total = resp.data.total;

this.tableData = resp.data.table;

})

},

changePageSize (pageSize) {

this.page.pageSize = pageSize;

this.load()

},

// 点击表格某一行数据时,弹出抽屉,并展示其图表信息

handleEdit(index, row) {

// 查看采集耗时详细

this.dialogTableVisible = true;

this.$nextTick(function () {

this.drawLine(row);

})

},

drawLine (row) {

let xAxisData = [];

let data1 = [];

let data2 = [];

let data3 = [];

axios.get(`/api/getCharts?id=${row.id}&collectTime=${row.collectTime}`).then((resp) => {

let data = resp.data.data;

data1=data;

data2=data;

data3=data;

let data1_len = data1.length;

for(let i = 0; i < data1_len;i++){

xAxisData.push(i)

}

let bar_dv = this.$refs.bar_dv;

let myChart = this.$echarts.init(bar_dv);

myChart.setOption({

title: {

text: '周期采集'

},

legend: {

data: ['上', '中', '下']

},

toolbox: {

feature: {

magicType: {

type: ['stack', 'tiled']

},

dataView: {},

saveAsImage: {

pixelRatio: 2

}

}

},

tooltip: {

trigger: 'axis',

formatter(params) {

return `设备编号:${params[0].data.name} 采集耗时:${params[0].data.value}`

}

},

xAxis: {

data: xAxisData,

splitLine: {

show: false

}

},

yAxis: {

type: 'value',

name: '时间/秒',

min: 0

},

series: [{

name: '上',

type: 'bar',

barWidth: 20,

data: data1,

animationDelay: function (idx) {

return idx * 10;

},

markLine : {

symbol: 'none',

itemStyle: {

normal: {

color: '#4985de',

label: {

show: true,

position: 'middle'

}

}

},

data : [

{type :'average', name: '平均值'}

],

}

}, {

name: '中',

type: 'bar',

data: data2,

animationDelay: function (idx) {

return idx * 10 + 100;

}

}, {

name: '下',

type: 'bar',

data: data3,

animationDelay: function (idx) {

return idx * 10 + 100;

}

}],

animationEasing: 'elasticOut'

})

}).catch((e) => {

this.$message.error(e.response.message);

})

}

}

}

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;