怎么把HTML文档做成折线图,Highcharts 实现HTML页面多个折线图

前言

最近做项目的时候,产品说要在后台的首页放多折线图(不是多数据折线图),但我上去网上找,基本是多数据折线图。例如:

ff74eee211f8193eb6790c1874fda883.png

同时换关键字也没什么可参考的。

39824f49bf3668b4db415da407224836.png

多折线图实现

找不到参考的,只能自己摸索。于是尝试将呈现折线图的HTML内容复制一遍。结果是——只显示一个折线图,控制台没有报错。 开始有些思路,产生问题的原因可能是:

一、数据没有传过来;

二、数据绑定的问题;

三、一二问题同时有。

最后发现一开始的HTML结构出现问题,导致后续的数据绑定出现问题。

highcharts插件是通过绑定id,并将数据渲染到对应id的容器中。highcharts的官方文档实例不太明显,走了一小段弯路。

f169dcaac5e1524b5ed3f97bf21f71e2.png

JS代码

var vm = new Vue({

el: '#app',

data: {

//表格当前页数据

list: [],

status: '3',

},

created: function () {

//this.date=vm.date["new Date"];

this.loadData(this.status);

},

methods: {

//从服务器读取数据

loadData(status) {

let vm = this;

vm.listLoading = true;

$.getJSON('Ajax请求地址', {status: status}, function (res) {

vm.time = [];

vm.number = [];

vm.time = res.time;//X轴时间

vm.user=res.user;//Y轴用户数量

vm.downloads=res.downloads;//Y轴下载数量

vm.views=res.views;//Y轴浏览量

vm.date = res.date;//标题上的时间

vm.listLoading = false;

var chart = Highcharts.chart('user', {

title: {

text: vm.date+' 用户数量'

},

subtitle: {

text: '数据来源:'

},

yAxis: {

title: {

text: '用户数量'

}

},

legend: {

layout: 'vertical',

align: 'right',

verticalAlign: 'middle'

},

xAxis: {

categories: vm.time

},

series: [

{

name: '用户数量',

data: vm.user

},

],

responsive: {

rules: [{

condition: {

maxWidth: 500

},

chartOptions: {

legend: {

layout: 'horizontal',

align: 'center',

verticalAlign: 'bottom'

}

}

}]

}

});

// Highcharts.chart('id',data);

var chart = Highcharts.chart('download', {

title: {

text: vm.date+' 下载次数'

},

subtitle: {

text: '数据来源:'

},

yAxis: {

title: {

text: '下载次数'

}

},

legend: {

layout: 'vertical',

align: 'right',

verticalAlign: 'middle'

},

xAxis: {

categories: vm.time

},

series: [

{

name: '下载次数',

data: vm.downloads

},

],

responsive: {

rules: [{

condition: {

maxWidth: 500

},

chartOptions: {

legend: {

layout: 'horizontal',

align: 'center',

verticalAlign: 'bottom'

}

}

}]

}

});

});

},

//筛选时间类型

sel(){

this.loadData(this.status);

},

},

})

HTML

效果

aab4a4ac0c7570c6a08c54b5e2426f71.png 若想实现多数据折线图,则在series中添加数据项即可。

series: [

{

name: '用户数量',

data: vm.user

},

{

name: '下载数量',

data: vm.downloads

},

{

name: '浏览量',

data: vm.views

},

],

相关链接

HighCharts在线演示

HighCharts半中文API文档

注:百度搜到的那些相关的帖子没有比较准确说到关键点上(相关文章也不多),以及官方文档的描述有点乱。个人写的这篇更倾向于演示,比较适合JS基础薄弱的开发人员。如有错误,还望各位前辈在评论区指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值