美文网首页
Highcharts 动态图表创建

Highcharts 动态图表创建

作者: heyzqq | 来源:发表于2018-01-15 15:31 被阅读0次

1. Highcharts 和 jQuery 结合使用很方便


首先, 就是环境准备, 需要安装 jQueryHighcharts, 可以直接使用 CDN:

<head>
   <script src="http://cdn.bootcss.com/jquery/2.1.4/jquery.min.js</script>
   <script src="http://code.highcharts.com/highcharts.js"></script>
</head>

2. 基本配置


var chart = new Highcharts.Chart({
    chart: { //    表
    },
    title: { //    标题   
    },
    subtitle: { // 子标题
    },
    xAxis: {    // X 轴
    },
    yAxis: {    // Y 轴
    },
    tooltip: {  // 提示信息 (如 %,单位等)
    },
    legend:{    // 展示方式, 对其方式等
    },
    exporting: {// 导出图标/打印....
    },
    series: [{  // 数据
    }],
    credits: {  // 关于版权信息
    }
    });

3. 具体配置

0. Highcharts 需要使用一个已准备好的 div, 并指定 id 和宽高等, 图表就放在 div 里面:

<div id="container" style="min-width:700px;height:400px"></div>

1. 是否使用世界时间, 这个与坐标轴时间刻度有关:

Highcharts.setOptions({
    global: {
      useUTC: false // 是否使用世界标准时间
    }
});

2. chart 的配置

chart: {
    renderTo: 'container', // 放图表的 div 的 id.
    type: 'spline',        // 图标类型: 设置图表样式,可以为line,spline, scatter, splinearea bar,pie,area,column 默认为line
    animation: Highcharts.svg,
    // don't animate in old IE               
    // marginRight: 10,
    events: {  // 事件回调,支持addSeries方法,click方法,load方法,selection方法等的回调函数
       load: function() {}
    }
},

title: {
    text: "title name"  // 标题名
    // x: -20 //center设置标题的位置 
},

subtitle: {
    text: "title name"  // 子标题名, 基本配置和 title 一样
},

xAxis: {    // X 轴
    type: 'datetime',
    tickPixelInterval: 100,
    tickInterval: TIME_INTERVAL  // 这是动态图的时间间隔.
},
// 与 x 轴相似, 若要配置两条, 可以如下配置: [] json 格式.
yAxis: [{  
    title: {},    
},{
    title: {},
    opposite: true // Y轴分立两侧, 一个在左侧, 这个在右侧
}],
  
tooltip: {  // 提示信息 (如 %,单位等)//鼠标移到图形上时显示的提示框    
    formatter: function() {    
        return '<b>'+ this.series.name +'</b><br />'+    
        this.x +': '+ this.y +'°C';    
    }    
},

legend:{    // 图例, 即 --图1 ++图2 ==图3 这种
    enabled: false
}, 
exporting: {// 导出图标/打印....
    enabled: false
},

series: [{  // 数据, 如果有两条, 也要是json
    name: 'name',
    yAxis: 0  // 选择对应的y轴数据.
},{
    name: 'name2',
    yAxis: 1
}],

credits: {  // 关于版权信息    
    enabled: true,    
    position: {//位置设置    
      align: 'right',    
      x: -10,    
      y: -10    
    },    
    href: "http://www.highcharts.com",//点击文本时的链接    
    style: {    
      color:'blue'    
    },    
    text: "Highcharts Demo"//显示的内容    
}

3. 将 第二步 的数据转化为一组 json 格式的数据, 然后直接创建 chart 图表, 这样就有基本的静态图了. 动态图只是加了一步, 定时更新数据加入到图表中而已.

// 可以直接将上面的数据写成 json, 也可以直接用函数转化.
var chart = new Highcharts.Chart({
    // 第2步 char 的配置, 都放到这里相对于是 一大串的json数据.
})

以下为完整的实例(来自 菜鸟教程 静态图):

<html>
<head>
<meta charset="UTF-8" />
<title>Highcharts 教程 | 菜鸟教程(runoob.com)</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
</head>
<body>
<div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div>
<script language="JavaScript">
$(document).ready(function() {
   var title = {
       text: '月平均气温'   
   };
   var subtitle = {
        text: 'Source: runoob.com'
   };
   var xAxis = {
       categories: ['一月', '二月', '三月', '四月', '五月', '六月'
              ,'七月', '八月', '九月', '十月', '十一月', '十二月']
   };
   var yAxis = {
      title: {
         text: 'Temperature (\xB0C)'
      },
      plotLines: [{
         value: 0,
         width: 1,
         color: '#808080'
      }]
   };   

   var tooltip = {
      valueSuffix: '\xB0C'
   }

   var legend = {
      layout: 'vertical',
      align: 'right',
      verticalAlign: 'middle',
      borderWidth: 0
   };

   var series =  [
      {
         name: 'Tokyo',
         data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
            26.5, 23.3, 18.3, 13.9, 9.6]
      }, 
      {
         name: 'New York',
         data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8,
            24.1, 20.1, 14.1, 8.6, 2.5]
      }, 
      {
         name: 'Berlin',
         data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6,
            17.9, 14.3, 9.0, 3.9, 1.0]
      }, 
      {
         name: 'London',
         data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 
            16.6, 14.2, 10.3, 6.6, 4.8]
      }
   ];

   var json = {};

   json.title = title;
   json.subtitle = subtitle;
   json.xAxis = xAxis;
   json.yAxis = yAxis;
   json.tooltip = tooltip;
   json.legend = legend;
   json.series = series;

   $('#container').highcharts(json);
});
</script>
</body>
</html>

[reference]

[1] 飛雲若雪. Highcharts 多个Y轴动态刷新数据[M]. (2014-03-18 19:52). https://www.cnblogs.com/sydeveloper/p/3608588.html
[2] 天马3798. Highcharts的基本属性和方法详解[M]. (2015-07-24 10:08) http://blog.csdn.net/u011127019/article/details/47036725
[3] runoob.com. Highcharts 配置语法. http://www.runoob.com

相关文章

  • Highcharts 动态图表创建

    1. Highcharts 和 jQuery 结合使用很方便 首先, 就是环境准备, 需要安装 jQuery 和 ...

  • ionic 气泡图

    1、创建 ionic 项目 ionic start MyChart tabs 2、创建Highcharts图表 ...

  • highcharts

    1.调用highcharts 2.设置图表类型 3.设置图表标题 4.设置图表副标题

  • Axure中插入Highcharts动态图表

    操作说明: 1、进入highcharts官网https://www.hcharts.cn/demo/highcha...

  • 02图表配置

    图表容器 此处列举了三种方式进行 Highcharts 配置 图表配置 这里主要涉及chart内各种配置项 图表样...

  • Highcharts图表控件

    一、Highcharts简介 Highcharts是一款非常好用的前端图表控件,正如其中文网介绍的那样:功能强大、...

  • HighCharts-Vue图表响应式方案

    前沿 小编最近在开发可视化图表(HighCharts-Vue)过程中遇到一个奇葩的bug,highCharts的响...

  • Excel day10学习小结

    【学习内容】 创建下拉配合使用Index函数让图表产生动态切换 【学习心得】 第一次接触这种图表动态切换的效果,感...

  • Highcharts+Vuejs 动态获取数据生成图表

    最近在做大数据管理系统用到了Highcharts,其中需要获取后台数据动态渲染呈现出来,让数据可视化更简单。 其实...

  • Highcharts Highstock如何在x轴Navigat

    当前公司在使用HighCharts来做图表展示大量数据. 其中HighStock是很好的展示时间轴图表的工具. 最...

网友评论

      本文标题:Highcharts 动态图表创建

      本文链接:https://www.haomeiwen.com/subject/wfcdoxtx.html