广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    使用Highcharts生成折线图与曲线图

    2018-04-07 07:50:05 次阅读 稿源:互联网
    零七广告

    折线图与曲线图可以显示随时间而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。本文将结合Highcharts,生成一个城市气温变化折线图和一个随时间动态即时显示CPU走势的曲线图。

    如果您看了本站前面两篇关于Highcharts的文章,应该对Highcharts有所了解,所以本文侧重JS配置来完成图表的设计。如果您还不知道什么是Highcharts,请先阅读本站前面的文章。

    1、城市气温变化折线图

    通过以下配置,可以生成一个带网格的、显示数据点具体数据的、可放大的、去除LOGO标签的折线图。具体请看代码和注释

    1. var chart; 
    2. $(function() { 
    3.     chart = new Highcharts.Chart({ 
    4.         chart: { 
    5.             renderTo: 'chart_line'//图表放置的容器,DIV 
    6.             defaultSeriesType: 'line'//图表类型line(折线图), 
    7.             zoomType: 'x'   //x轴方向可以缩放 
    8.         }, 
    9.         credits: { 
    10.             enabled: false   //右下角不显示LOGO 
    11.         }, 
    12.         title: { 
    13.             text: '主要城市月平均气温' //图表标题 
    14.         }, 
    15.         subtitle: { 
    16.             text: '2011年'  //副标题 
    17.         }, 
    18.         xAxis: {  //x轴 
    19.             categories: ['1月''2月''3月''4月''5月''6月''7月''8月''9月''10月'
    20.  '11月''12月'], //x轴标签名称 
    21.             gridLineWidth: 1, //设置网格宽度为1 
    22.             lineWidth: 2,  //基线宽度 
    23.             labels:{y:26}  //x轴标签位置:距X轴下方26像素 
    24.         }, 
    25.         yAxis: {  //y轴 
    26.             title: {text: '平均气温(°C)'}, //标题 
    27.             lineWidth: 2 //基线宽度 
    28.         }, 
    29.         plotOptions:{ //设置数据点 
    30.             line:{ 
    31.                 dataLabels:{ 
    32.                     enabled:true  //在数据点上显示对应的数据值 
    33.                 }, 
    34.                 enableMouseTracking: false //取消鼠标滑向触发提示框 
    35.             } 
    36.         }, 
    37.         legend: {  //图例 
    38.             layout: 'horizontal',  //图例显示的样式:水平(horizontal)/垂直(vertical) 
    39.             backgroundColor: '#ffc'//图例背景色 
    40.             align: 'left',  //图例水平对齐方式 
    41.             verticalAlign: 'top',  //图例垂直对齐方式 
    42.             x: 100,  //相对X位移 
    43.             y: 70,   //相对Y位移 
    44.             floating: true//设置可浮动 
    45.             shadow: true  //设置阴影 
    46.         }, 
    47.         exporting: { 
    48.             enabled: false  //设置导出按钮不可用 
    49.         }, 
    50.         series: [{  //数据列 
    51.             name: '北京'
    52.             data: [ - 4.6, -2.2, 4.5, 13.1, 19.8, 24.0, 25.8, 24.4, 19.3, 12.4, 4.1, -2.7] 
    53.         }, 
    54.         { 
    55.             name: '广州'
    56.             data: [13.3, 14.4, 17.7, 21.9, 24.6, 27.2, 30.8, 32.1, 27.2, 23.7, 21.3, 15.6] 
    57.         }] 
    58.     }); 
    59. }); 

    2、CPU使用记录走势图

    通过相关配置,可以生成一个随着时间变化(每隔5秒更新一次)的曲线图。

    1. var chart; 
    2. $(function() { 
    3.     chart = new Highcharts.Chart({ 
    4.         chart: { 
    5.             renderTo: 'chart_spline'//图表放置的容器,DIV 
    6.             defaultSeriesType: 'spline'//图表类型为曲线图 
    7.             events: { 
    8.                 load: function() {  
    9.                     var series = this.series[0]; 
    10.                     //每隔5秒钟,图表更新一次,y数据值在0-100之间的随机数 
    11.                     setInterval(function() { 
    12.                         var x = (new Date()).getTime(), // 当前时间 
    13.                         y = Math.random()*100;  
    14.                         series.addPoint([x, y], truetrue); 
    15.                     }, 
    16.                     5000); 
    17.                 } 
    18.             } 
    19.         }, 
    20.         title: { 
    21.             text: 'CPU使用记录走势图'  //图表标题 
    22.         }, 
    23.         xAxis: { //设置X轴 
    24.             type: 'datetime',  //X轴为日期时间类型 
    25.             tickPixelInterval: 150  //X轴标签间隔 
    26.         }, 
    27.         yAxis: { //设置Y轴 
    28.             title: ''
    29.             max: 100, //Y轴最大值 
    30.             min: 0  //Y轴最小值 
    31.         }, 
    32.         tooltip: {//当鼠标悬置数据点时的提示框 
    33.             formatter: function() { //格式化提示信息 
    34.                 return 'CPU使用率 
    35. '+ 
    36.                 Highcharts.dateFormat('%H:%M:%S'this.x) +' 
    37. '+  
    38.                 Highcharts.numberFormat(this.y, 2)+'%'
    39.             } 
    40.         }, 
    41.         legend: { 
    42.             enabled: false  //设置图例不可见 
    43.         }, 
    44.         exporting: { 
    45.             enabled: false  //设置导出按钮不可用 
    46.         }, 
    47.         credits: { 
    48.             text: 'Helloweba.com'//设置LOGO区文字 
    49.             url: 'http://www.helloweba.com' //设置LOGO链接地址 
    50.         }, 
    51.         series: [{ 
    52.             data: (function() { //设置默认数据, 
    53.                 var data = [], 
    54.                 time = (new Date()).getTime(), 
    55.                 i; 
    56.  
    57.                 for (i = -19; i <= 0; i++) { 
    58.                     data.push({ 
    59.                         x: time + i * 5000,  
    60.                         y: Math.random()*100 
    61.                     }); 
    62.                 } 
    63.                 return data; 
    64.             })() 
    65.         }] 
    66.     }); 
    67. }); 

    注意,当X轴类型为datetime日期时间型的,需要设置时区,在开头加上以下代码即可:

    1. Highcharts.setOptions({ 
    2.     global: { 
    3.         useUTC: false 
    4.     } 
    5. }); 

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告