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 ''+this.x+''+ //这里返回的内容就是提示框弹出的内容, this.series.name+': '+this.y+'' } }, /* 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: '{series.name}: {point.y:.2f}%',
这里的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' //文字竖排样式 }