highcharts官方api文档写得不是很详细,如果使用的时候看哪个api文档,感觉理解起来还是蛮难的 ,尤其对于新手来说,等于没啥用, 不过官方的demo还是很有用的, 如果觉得难,就把demo多看一些,一边看一边修改一些属性,这样能更方便理解;
下面根据例子一行一行注释,这样理解起来应该更容易;
new Highcharts.Chart({
chart: {
renderTo:'container', //这是页面id,是将这个图标插入到这个id容器中
zoomType: 'xy' //图形放大(操作方法是鼠标点击图中拖动鼠标,选中的区域会被放大),写x就放大x轴数据,y就放大y轴数据,xy就是全部放大;
},
exporting:{
enabled:false //导出按钮是否显示
},
title: {
text: '标题', //标题名称
style: { //标题样式,这个里面可以设置标题颜色,字体大小,位置等
fontSize: '12px'
}
},
legend:{
itemStyle:{
fontWeight:'normal'//这个就是不要加粗
},
margin:5
},
xAxis: { //x轴数据,可以自定义,也可以为时间
//categories: [1,2,3,4,5,6], //这里这行是写死的,也可以自己定义一个数组;
type: 'datetime', //定义x轴为时间,需要注意的是时间一定要是升序,如果不是会报#15的错误
//reversed: true, 倒序显示
labels: {
formatter: function() {
return Highcharts.dateFormat('%Y-%m', this.value); //将时间戳转换成年-月
}
} },
yAxis: [{ //定义y轴
labels:{
valueDecimals: 2, //当你的数据很大,比如10000000时,这里会自动显示成10M,10000显示为10K
style: {
color: '#6B6B6B'
}
},
//tickInterval:2,
tickPixelInterval:40, //y轴的行高
min:0, //设置最小值
max:10 //设置最大值
title: { //y轴防线标题及样式
text: '',
style:{
color: '#6B6B6B',
width:'10em'
},
//align:'high',
offset:50,
//rotation:0
},
plotLines: [{
value: 0,
width: 1,
color: '#6B6B6B'
}]
},{ //
//tickInterval:m_max, //如果有两条线,而且两条线的单位不一样,这样就需要设置两个y轴,来显示不同的数据
tickPixelInterval:30,
//min:2,
title: {
text: ''
},
labels: {
//format: '{value} 元',
valueDecimals: 2,
style: {
color: '#6B6B6B'
}
},
plotLines: [{
value: 0,
width: 1,
color: '#6B6B6B'
}],
opposite: true
}],
tooltip: { //设置弹出提示框,这里是重点,也是难点,因为弹出提示框里面的内容可能有自定义的;
snap: 0, //设置显示数据标签的敏感区域值 单位为px,为0表示距离数据点为0px的时候显示标签,默认情况下为10px,移动设备最好设置为25px
hideDelay:0, //设置隐藏标签延迟时间值,单位为毫秒,默认为500毫秒;当设置为0时,只要鼠标离开数据点就隐藏标签
shared: true, //如果一个图表中有多个图形,提示数据在一个框中弹出
useHTML: true, //使用html代码
formatter: function() { //格式化鼠标滑向图表数据点时显示的提示框
return '<span style="color:'+this.series.color+'">'+this.x+'</span></br>'+ //这里返回的内容就是提示框弹出的内容,
this.series.name+': <b>'+this.y+'</b>'
}
},
/* legend: { //图例的显示位置
layout: 'vertical',
align: 'left',
x: 80,
verticalAlign: 'top',
y: 20,
floating: true,
backgroundColor: '#FFFFFF'
}, */
credits: {
enabled: false //去除highcharts的链接
},
series: [{
name: 'name1',
color: '#95CEFF',
type: 'column',
data: yAxis_c,
},{
name: 'name2',
color: '#FCF12E',
//type: 'spline',
data: yAxis_s,
marker: {
enabled: false, //数据点是否显示*/
radius: 2, //数据点大小
},
}]
});
如果出现错误, 只需根据错误号去查找就行;
还有需要注意的是绘图的数据不能是字符串,只能是数字;如果是字串图就不显示了;
还有一种显示弹出框信息的方式
pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y:.2f}%</b>',
这里的pointFormat里面的内容就是弹出框显示的内容,{series.color}表示series中的color,{point.y:.2f}表示y轴的值,并保留两位小数;
限制某些图例名称是否显示
showInLegend: true // 默认值
showInLegend: false // 设置为 false 即为不显示在图例中
设置数据点大小
marker: {
enabled: true, //数据点是否显示
radius: 4, //数据点大小
states: {
hover: {
radius: 5, //数据点大小
}
}
},
设置Y轴刻度间距,值越大,刻度间距越大;
tickPixelInterval:100;
控制标题文字样式
title: {
text: '变动数量',
rotation : 360, //文字旋转角度
style: {
writingMode:'tb-rl' //文字竖排样式
}