您的位置:

Highcharts软件教程

Highcharts是一款非常流行的JavaScript图表库,提供了许多类型的图表,可以制作出用户友好的、美观的图表。本文将为您介绍highcharts软件使用教程,从多个方面对该软件进行详细阐述,包括环境安装、基本图表类型、设置、自定义图表类型等方面,以帮助使用该软件的初学者快速上手。

一、安装环境

在使用Highcharts之前,需要安装一些必要的工具。首先,需要安装jQuery。Highcharts需要依赖于jQuery,因此请先下载并安装jQuery,并将其引入到HTML页面中。

<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

接下来,需要下载Highcharts源代码,并将其引入到HTML页面中:

<script src="https://code.highcharts.com/highcharts.src.js"></script>

安装完成后,即可开始使用Highcharts。

二、基本图表类型

Highcharts提供了许多常见的图表类型,如折线图、柱状图、饼图等。下面将逐一介绍这些基本图表类型的使用方法。

1. 折线图(Line Chart)

折线图用于显示数据随时间变化或其他顺序变化的情况,可以用来分析趋势。下面是一个简单的折线图:

<div id="container"></div>
<script>
Highcharts.chart('container', {
  title: {
    text: 'Monthly Average Temperature'
  },
  subtitle: {
    text: 'Source: WorldClimate.com'
  },
  xAxis: {
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
      'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  },
  yAxis: {
    title: {
      text: 'Temperature (°C)'
    }
  },
  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]
  }]
});
</script>

上述代码中,我们首先在HTML页面中创建了一个div,然后在JavaScript代码中调用Highcharts.chart()方法,将该div的ID作为第一个参数。接着,我们通过title和subtitle属性设置图表的标题和子标题,通过xAxis和yAxis属性设置坐标轴的标题。最后在series属性中设置数据。该折线图由四个系列(Tokyo、New York、Berlin、London)组成,每个系列有12个数据点。

2. 柱状图(Column Chart)

柱状图用于统计数据,通过高度比较不同柱子的高度来比较数据大小。下面是一个简单的柱状图:

<div id="container"></div>
<script>
Highcharts.chart('container', {
  chart: {
    type: 'column'
  },
  title: {
    text: 'Monthly Average Rainfall'
  },
  subtitle: {
    text: 'Source: WorldClimate.com'
  },
  xAxis: {
    categories: [
      'Jan',
      'Feb',
      'Mar',
      'Apr',
      'May',
      'Jun',
      'Jul',
      'Aug',
      'Sep',
      'Oct',
      'Nov',
      'Dec'
    ],
    crosshair: true
  },
  yAxis: {
    min: 0,
    title: {
      text: 'Rainfall (mm)'
    }
  },
  series: [{
    name: 'Rainfall',
    data: [
      49.9,
      71.5,
      106.4,
      129.2,
      144.0,
      176.0,
      135.6,
      148.5,
      216.4,
      194.1,
      95.6,
      54.4
    ],
    color: '#3498db'
  }]
});
</script>

上述代码中,我们通过将chart属性设置为column来创建一个柱状图。接着,我们设置图表的标题、子标题和坐标轴。最后,在series属性中设置数据。

3. 饼图(Pie Chart)

饼图用于显示各个部分占比,常用于可视化数据。下面是一个简单的饼图:

<div id="container"></div>
<script>
Highcharts.chart('container', {
  chart: {
    plotBackgroundColor: null,
    plotBorderWidth: null,
    plotShadow: false,
    type: 'pie'
  },
  title: {
    text: 'Browser market shares in January, 2018'
  },
  tooltip: {
    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
  },
  accessibility: {
    point: {
      valueSuffix: '%'
    }
  },
  plotOptions: {
    pie: {
      allowPointSelect: true,
      cursor: 'pointer',
      dataLabels: {
        enabled: true,
        format: '<b>{point.name}</b>: {point.percentage:.1f} %'
      }
    }
  },
  series: [{
    name: 'Brands',
    colorByPoint: true,
    data: [{
      name: 'Chrome',
      y: 61.41,
      sliced: true,
      selected: true
    }, {
      name: 'Internet Explorer',
      y: 11.84
    }, {
      name: 'Firefox',
      y: 10.85
    }, {
      name: 'Edge',
      y: 4.67
    }, {
      name: 'Safari',
      y: 4.18
    }, {
      name: 'Sogou Explorer',
      y: 1.64
    }, {
      name: 'Opera',
      y: 1.6
    }, {
      name: 'QQ',
      y: 1.2
    }, {
      name: 'Other',
      y: 2.61
    }]
  }]
});
</script>

上述代码中,我们通过将chart属性设置为pie来创建一个饼图。接着,我们设置图表的标题、tooltip、accessibility和plotOptions。在series属性中,设置饼图的数据。

三、设置

Highcharts提供了许多配置选项,可以帮助用户更好地控制图表的外观和行为。下面将介绍一些常用的设置选项。

1. 数据标签(Data Labels)

数据标签显示每个数据点的具体值,便于用户查看数据的具体数值。下面是一个数据标签的例子:

<div id="container"></div>
<script>
Highcharts.chart('container', {
  chart: {
    type: 'bar'
  },
  title: {
    text: 'Historic World Population by Region'
  },
  subtitle: {
    text: 'Source: <a href="https://en.wikipedia.org/wiki/World_population">Wikipedia</a>'
  },
  xAxis: {
    categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'],
    title: {
      text: null
    }
  },
  yAxis: {
    min: 0,
    title: {
      text: 'Population (millions)',
      align: 'high'
    },
    labels: {
      overflow: 'justify'
    }
  },
  tooltip: {
    valueSuffix: ' millions'
  },
  plotOptions: {
    bar: {
      dataLabels: {
        enabled: true
      }
    }
  },
  legend: {
    layout: 'vertical',
    align: 'right',
    verticalAlign: 'top',
    x: -40,
    y: 80,
    floating: true,
    borderWidth: 1,
    backgroundColor:
      Highcharts.defaultOptions.legend.backgroundColor || '#FFFFFF',
    shadow: true
  },
  credits: {
    enabled: false
  },
  series: [{
    name: 'Year 1800',
    data: [107, 31, 635, 203, 2]
  }, {
    name: 'Year 1900',
    data: [133, 156, 947, 408, 6]
  }, {
    name: 'Year 2000',
    data: [814, 841, 3714, 727, 31]
  }, {
    name: 'Year 2016',
    data: [1216, 1001, 4436, 738, 40]
  }]
});
</script>

上述代码中,我们在plotOptions下的bar属性中设置了数据标签。该数据标签将在每个条形的顶部显示相应的数值。可以设置数据标签的位置、格式和样式等属性。

2. 动画(Animation)

动画效果可以使图表更生动、更有趣,便于用户更好地理解数据。下面是一个简单的动画效果的例子:

<div id="container"></div>
<script>
Highcharts.chart('container', {
  chart: {
    type: 'column'
  },
  title: {
    text: 'Monthly Average Rainfall'
  },
  subtitle: {
    text: 'Source: WorldClimate.com'
  },
  xAxis: {
    categories: [
      'Jan',
      'Feb',
      'Mar',
      'Apr',
      'May',
      'Jun',
      'Jul',
      'Aug',
      'Sep',
      'Oct',
      'Nov',
      'Dec'
    ],
    crosshair: true
  },
  yAxis: {
    min: 0,
    title: {
      text: 'Rainfall (mm)'
    }
  },
  series: [{
    name: 'Rainfall',
    data: [
      49.9,
      71.5,
      106.4,
      129.2,
      144.0,
      176.0,
      135.6,
      148.5,
      216.4,
      194.1,
      95.6,
      54.4
    ],
    color: '#3498db',
    animation: {
      duration: 2000,
      easing: 'easeOutBounce'
    }
  }]
});
</script>

上述代码中,我们在series下的属性中设置了动画效果。该动画效果将在加载图表时播放。

四、自定义图表类型

Highcharts提供了一组灵活的API,可以帮助用户实现自定义的图表类型。下面是一个简单的自定义图表类型的例子:

<div id="container"></div>
<script>
// 自定义图表类型
Highcharts.seriesType('myChartType', 'line', {
  // 添加自定义的方法和属性
  myMethod: function () {
    console.log('This is my custom method.');
  },
  myProperty: 'This is my custom property.'
}, {
  // 添加自定义的默认选项
  myOption: 42
});

Highcharts.chart('container', {
  chart: {
    type: 'myChartType'
  },
  title: {
    text: 'My custom chart type'