纯JAVASCRIPT图表动画插件Highcharts Examples

2023-12-09前端开发
3

下面是“纯JAVASCRIPT图表动画插件Highcharts Examples”完整攻略:

1. Highcharts介绍

Highcharts是一个纯JavaScript编写的图表库,提供了很多基础的图表类型及其组合,包括线图、柱状图、散点图、区域图、饼图、环形图等,并且支持动态数据加载,动画效果等,同时还有非常详细的文档及示例。

2. Highcharts的常见配置项

Highcharts的常见配置项可以参考官方文档中的API中心,下面是一些常见的配置参数及其作用:

  • chart:提供整个图表的设置,如类型、大小等。
  • title:标题设置。
  • xAxis/yAxis:X/Y轴的数据范围设置。
  • series:各个数据系列的设置,如数据源、颜色、大小等。
  • tooltip:鼠标悬浮到数据项上时的提示框设置。
  • legend:图例设置。
  • plotOptions:针对不同类型的图表提供的配置项,如堆积效果、标签样式等。

3. Highcharts Examples

下面是两个Highcharts的示例说明。

示例1:动态更新线图

下面是一个动态更新的折线图。图表中的数据是从服务器请求而来的,每1秒钟更新一次,并通过动画效果进行切换,代码如下:

var chart = Highcharts.chart('container', { // 创建一个chart实例
  chart: {
    type: 'line',
    animation: Highcharts.svg, // 图表初始化完成后是否进行动画效果
    marginRight: 10,
    events: {
      load: function() { //图表加载完成后的回调函数
        var series = this.series[0]; //获取当前数据系列
        setInterval(function() { // 定时器每隔1s更新数据
          var x = (new Date()).getTime(),
              y = Math.random();
          series.addPoint([x, y], true, true); // 更新数据点
        }, 1000);
      }
    }
  },
  title: {
    text: '动态实时更新数据折线图'
  },
  xAxis: {
    type: 'datetime',
    tickPixelInterval: 150
  },
  yAxis: {
    title: {
      text: '数值'
    },
    plotLines: [{
      value: 0,
      width: 1,
      color: '#808080'
    }]
  },
  tooltip: {
    formatter: function() {
      return '<b>' + this.series.name + '</b><br/>' +
        Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
        Highcharts.numberFormat(this.y, 2);
    }
  },
  legend: {
    enabled: false
  },
  exporting: {
    enabled: false
  },
  series: [{
    name: '随机数据',
    data: (function() { // 初始数据
      var data = [],
          time = (new Date()).getTime(),
          i;

      for (i = -19; i <= 0; i++) {
        data.push({
          x: time + i * 1000,
          y: Math.random()
        });
      }
      return data;
    })()
  }]
});

示例2:堆积柱状图

下面是一个简单的堆积柱状图。图表中的数据是直接写在代码中的,用于展示不同数据系列之间的比较情况,代码如下:

var chart = Highcharts.chart('container', { // 创建一个chart实例
  chart: {
    type: 'column'
  },
  title: {
    text: '2018-2019年各地油田产量情况比较'
  },
  xAxis: {
    categories: ['山西油田', '辽河油田', '胜利油田', '大庆油田', '吉林油田']
  },
  yAxis: {
    min: 0,
    title: {
      text: '亿吨'
    },
    stackLabels: {
      enabled: true,
      style: {
        fontWeight: 'bold',
        color: ( // 返回一个颜色值,用于标签的颜色设置
          Highcharts.defaultOptions.title.style &&
          Highcharts.defaultOptions.title.style.color
        ) || 'gray'
      }
    }
  },
  legend: {
    align: 'right',
    x: -30,
    verticalAlign: 'top',
    y: 25,
    floating: true, // 图例是否浮动
    backgroundColor: Highcharts.defaultOptions.legend.backgroundColor || 'white',
    borderColor: '#CCC',
    borderWidth: 1,
    shadow: false
  },
  tooltip: {
    headerFormat: '<b>{point.x}</b><br/>',
    pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
  },
  plotOptions: {
    column: {
      stacking: 'normal', // 堆积效果
      dataLabels: {
        enabled: true,
        color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
      }
    }
  },
  series: [{
    name: '2018年',
    data: [5, 3, 4, 7, 2]
  }, {
    name: '2019年',
    data: [3, 4, 4, 2, 5]
  }]
});

以上是对“纯JAVASCRIPT图表动画插件Highcharts”完整攻略的说明,希望能对您有所帮助。

The End

相关推荐

layui实现图片上传成功后回显点击放大图片功能
layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-...
2025-09-06 前端开发
202

Layui实现数据表格中鼠标悬停图片放大离开时恢复原图
Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150...
2025-09-04 前端开发
112

layui点击文本输入框调起弹出选择框并选择内容的两种方法参考
我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen...
2025-09-02 前端开发
167

网站部署https后百度地图不显示问题
https的网站如果引用百度地图,会出现加载不了的问题,这是因为涉及到跨域问题,网站是https的,但是引用百度地图的是http的,这个要怎么操作呢? 比如我引用的地址:http://api.map.baidu.com/api?v=2.0ak=AK显示 后来看了一下,少了一个s=1字段,加一下s=1...
2025-07-28 前端开发
139

微信小程序实现点击复制功能和手机拨打电话功能
做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"...
2025-07-02 前端开发
78

js拖拽排序插件Sortable.js如何使用
由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持...
2025-06-12 前端开发
161