JavaScript图表库Highcharts入门教程(七):轴元素

默认情况下,除饼图外,所有图表中均显示x轴和y轴。以下是轴元素的快速概述。

Highcharts是一款纯JavaScript编写的图表库,为你的Web 站、Web应用程序提供直观、交互式图表。当前支持折线、曲线、区域、区域曲线图、柱形图、条形图、饼图、散点图、角度测量图、区域排列图、区域曲线排列图、柱形排列图、极坐标图等几十种图表类型。

Highcharts最新版本v8.0.0发布,添加了带有动画的数据排序等新功能,并修复了一些BUG。戳此处查看详情!

Highcharts最新试用版

JavaScript图表库Highcharts入门教程(七):轴元素

轴标签,刻度线和 格线

轴标签,刻度线和 格线紧密相连,并且一起缩放。计算其位置以最适合图表中显示的数据。 

刻度线

刻度线是沿轴放置的线,以显示测量单位。刻度线之间的间隔主要由tickInterval和tickPixelInterval选项决定。标签和 格线的位置与刻度线相同。 

tickInterval选项确定刻度标记的间隔(以轴为单位)。刻度间隔默认为null,这意味着它被计算为近似跟随线性和日期时间轴上的tickPixelInterval。

在分类轴上,null tickInterval将默认为1,即一个类别。

请注意,日期时间轴以毫秒为单位,因此,例如,一天的间隔表示为24 3600 1000。 

在对数轴上,tickInterval基于幂,因此tickInterval为1表示对0.1、1、10、100等各一个刻度。tickInterval为2表示对0.1、10、1000等为刻度。tickInterval为0.2在0.1、0.2、0.4、0.6、0.8、1、2、4、6、8、10、20、40等上打勾

“ tickPixelInterval”基于像素值(如果“ tickInterval”为空)设置刻度线的近似像素间隔。它不适用于分类轴。y轴默认为72,x轴默认为100。

如果设置了minorTickInterval选项,则在主要刻度之间布置次要刻度。这包括较小的刻度线和较小的 格线,它们在外观上都有自己的选择,但不包括标签。 

标签

可以在显示其对应数据值的轴上找到轴标签。也可以使用格式化程序功能来定制标签:

yAxis: {    labels: {        formatter: function() {            return this.value + ' %';        }    },},

上面的示例采用y轴标签的值,并在其末尾添加%符 。

格线

格线是水平(和/或垂直)线的集合,这些水平线将图表划分为 格,从而更易于读取图表的值。 

要为x轴或y轴启用或禁用 格线,请设置相应轴的gridLineWidth:

xAxis :{    gridLineWidth :1} ,yAxis :{    gridLineWidth :1}

y轴的 格线默认为启用(gridLineWidth:1),而x轴的 格线(gridLineWidth:0)默认为禁用。

格线的其他选项可以在x和y轴的API参考中找到。

细 格线是可以通过设置minorTickInterval选项启用的中间线。

多轴

可以有多个轴并将它们与不同的数据系列链接。为此,需要创建多个轴,如下所示:

yAxis: [{ //--- Primary yAxis    title: {        text: 'Temperature'    }}, { //--- Secondary yAxis    title: {        text: 'Rainfall'    },    opposite: true}],series: [{    yAxis: 0,    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]},{    yAxis: 1,    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]}]

请注意,使用列表创建了多个轴,因此第一个yAxis以索引0开头。“ opposite:true”选项将轴置于图表的右侧。

轴标题 

轴标题,显示在轴线旁边。默认情况下,此标题为y轴,默认情况下为x轴隐藏。

轴类型

轴可以是线性,对数,日期时间或类别。轴类型设置如下:

// The types are 'linear', 'logarithmic' and 'datetime'yAxis: {    type: 'linear',}// Categories are set by using an arrayxAxis: {    categories: ['Apples', 'Bananas', 'Oranges']}

线性

沿轴的数字是线性比例。这是默认的轴类型。如果数据系列中仅存在y值,则将x轴标记为从0到y值的数量(显示y值的数组索引):

var chart = new Highcharts.Chart({        chart: {            renderTo: 'container',            type: 'column'        },        title: {            text: 'Fruit Consumption'        },        xAxis: {            title: {                text: 'Fruit Number'            },            tickInterval: 1        },        yAxis: {            title: {                text: 'Fruit eaten'            },            tickInterval: 1        },        series: [{            name: 'Jane',            data: [1, 0, 4]        }, {            name: 'John',            data: [5, 7, 3]        }]    }});

JavaScript图表库Highcharts入门教程(七):轴元素

对数

在对数轴上,沿轴的数字对数增加,并且轴根据图表中显示的数据系列进行自我调整。

请注意,在对数轴上,tickInterval选项基于幂,因此tickInterval为1表示对0.1、1、10、100等的一个刻度。tickInterval为2意味着对0.1、10、1000等的刻度。 tickInterval为0.2会在0.1、0.2、0.4、0.6、0.8、1、2、4、6、8、10、20、40等上打勾。

要注意的另一件事是,对数轴永远不会变为负数,因为每个完整轴单位都是前一个的十分之一。结果,Highcharts将删除与轴关联的0或负点,并且如果您尝试将axis.min  选项设置为0或负,它将失败并显示错误。

日期时间

日期时间轴以适当的时间间隔打印日期日期值的标签。在内部,datetime轴是线性数字轴,以自1970年1月1日午夜以来的毫秒数为基础,由JavaScript Date对象指定。根据比例,日期时间标签将表示为时间或日期。

一些有用的功能是:

// Get time in millis for UTCDate.UTC(year,month,day,hours,minutes,seconds,millisec)// Get time in millis for your local timeDate.parse("Month day, year");// Built in Highcharts date formatter based on the [PHP strftime](https://php.net/manual/en/function.strftime.php) (see [API reference](https://api.highcharts.com/class-reference/Highcharts#.dateFormat) for usage)Highcharts.dateFormat("Month: %m Day: %d Year: %Y", 20, false);

请注意,基于Unix的服务器时间戳表示为秒而不是毫秒。知道这一点很有用,因为PHP时间是基于Unix时间戳的,因此将其与Highcharts一起使用时,该值仅需乘以1000。

在Highstock中,x轴始终是日期时间轴。

分类

如果存在类别,则使用类别的名称代替轴上的数字或日期。请参阅xAxis.categories。

我应该使用哪种轴类型/strong>

Highcharts演示中的许多示例   都带有带有类别的xAxis。但是,重要的是要了解何时使用类别以及何时使用线性或日期时间xAxis更好。

类别是一组项目,例如“ Apples”,“ Pears”和“ Oranges”或“ Red”,“ Green”,“ Blue”,“ Yellow”。这些类别的共同点是没有中间值。苹果和梨之间没有滑动过渡。同样,如果您将一个类别排除在外,则用户将无法理解遗漏的内容。假设您每隔第二次打印“红色”,“绿色”,“蓝色”或“黄色”颜色,则用户将不知道缺少什么颜色。因此,Highcharts没有自动的方法来隐藏类别(如果它们在轴上变得密集)。如果轴标签重叠有问题,请尝试使用xAxis.labels.staggerLines选项,或旋转标签。 选项,最好是使用线性或日期时间轴。

线性或日期时间类型的xAxis的优点是Highcharts能够确定数据标签的距离,因为它知道如何进行插值。默认情况下,标签之间的距离大约为100px,可以在tickPixelInterval选项中进行更改。如果您具有可预测的类别,例如“ Item1”,“ Item2”,“ Item3”或“ 2012-01-01”,“ 2012-01-02”,“ 2012-01-03”等,则组合线性或日期时间轴类型使用xAxis.labels.formatter可能是更好的选择。

动态更新轴

渲染时间过后,可以使用新信息更新轴。


温馨提示:疫情期间返岗上班戴口罩勤洗手、常通风,做好防护措施

想要了解或购买Highcharts正版授权的朋友,欢迎咨询在线客服

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月1日
下一篇 2020年1月1日

相关推荐

发表回复

登录后才能评论