highcharts 图表生成

 

最近在项目中用到了图表插件,用的是highcharts插件中的曲线和饼图代码, 现在总结一下它的使用方法,方便各位少走弯路.

废话不多少,先看第一幅效果图

 

 

 

 

上幅图中暂时表示了6处地点,我们暂时来解析下这6处地点怎么改

标识 1  图表的标题

标识 2  图表的副标题

标识 3  图表的导出

标识 4  图例说明

标识 5  版权

标识 6 信息提示框(鼠标点击或触摸显示)

 

先贴代码 上来

 1 /**
 2      * Highcharts 在 4.2.0 开始已经不依赖 jQuery 了,直接用其构造函数既可创建图表
 3      *
 4      */
 5     var chart = new Highcharts.Chart('container', {
 6         title: {
 7             text: '不同城市的月平均气温',        // 图1 .  图表的标题
 8             x: -20                                // 标题位置
 9         },
10         subtitle: {
11             text: '数据来源: WorldClimate.com',    // 图2 . 图表的副标题
12             x: -20
13         },
14         xAxis: {                                // X 坐标数据
15             categories: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
16         },
17         yAxis: {                                // Y 坐标数据
18             title: {                            // Y 坐标标题
19                 text: '温度 (°C)'
20             },
21             /**
22             plotLines: [{
23                 className:
24                 color: undefined
25                 dashStyle: 线条样式
26                 events: 事件
27                 id: 编号
28                 label: {标签}
29                 value: 值
30                 width: 宽度
31                 zIndex: 层叠
32                 }]
33             */
34             plotLines: [{                        // 标识线    
35                 value: 0,                        
36                 width: 1,
37                 color: '#808080'
38             }]
39         },
40         tooltip: {                                // 图6. 提示框     文档地址  https://api.hcharts.cn/highcharts#tooltip
41             valueSuffix: '°C'                    // 数值后缀
42         },
43         legend: {                                // 图4. 图例    文档地址  https://api.hcharts.cn/highcharts#legend            
44             layout: 'vertical',                    // 图例布局   horizontal(水平)  vertical(垂直)
45             align: 'right',
46             verticalAlign: 'middle',
47             borderWidth: 0,
48             enabled: true                        // 图例开关(默认显示图例  但是一般在手机上面不显示图例  则 应该为 false)    
49         },
50         /**
51             credits: {
52                 enabled: 启用
53                 href: 链接
54                 position: {位置}
55                 style: 样式
56                 text: 内容
57             }
58         */
59         credits:{                                // 图5. 版权信息  文档地址 https://api.hcharts.cn/highcharts#credits            
60             enabled: true    
61         },
62         exporting:{
63             enabled: true                        // 图3. 导出图表  文档地址 https://api.hcharts.cn/highcharts#exporting    
64         },
65         series: [{
66             name: '东京',
67             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]
68         }, {
69             name: '纽约',
70             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]
71         }, {
72             name: '柏林',
73             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]
74         }, {
75             name: '伦敦',
76             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]
77         }]
78     });

一般情况下,标识 2、3、4、5 不需要, 所以

副标题代码

1  subtitle: {
2      text: '数据来源: WorldClimate.com',    // 图2 . 图表的副标题
3       x: -20
4 },

 

这一段 可以去掉

标识 3、4、5 因为默认是true  所以需要 改为 false 

 

可以看一下效果

 

 

 现在是不是可以了 OK # 项目场景:

提示:这里简述项目相关背景:
例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)


问题描述:

提示:这里描述项目中遇到的问题:
例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据
APP 中接收数据代码:

@Override
        public void run() {
            bytes = mmInStream.read(buffer);
            mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
        }

原因分析:

提示:这里填写问题的分析:
例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。


解决方案:

提示:这里填写该问题的具体解决方案:
例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 mHandler.sendMessage()。

可以看到提示框 有个 七月 纽约时间等 , 有时候我们需要把七月 改成 xxx七月 也不需要换行, 那我们可以这样改

1  tooltip: {                                
2      valueSuffix: '°C',                    // 数值后缀
3      headerFormat: '<div style="text-align: center">当前月份:{point.key}</div><br/>',
4 },

 

如果不需要换行的话 , 把后面的<br/> 去掉就行

再来看下效果

 

 

 

大家可以看下官方文档上面的:https://api.hcharts.cn/highcharts#exporting 

讲的非常清晰

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值