最近公司要求做一些图标,动态的添加数据,展示在手机上,以前对Echarts,d3,highcharts只是听说,也没实际去花一定的时间玩玩,也是自以为是,不就看看api的事,结果呢?-----被他们给玩了。
也算不错,在自己的努力和一些牛人的帮助下,慢慢的完善了自己的想要的图表。
其实最重要是原生js还有canvas和svg没有很深的基础,后决定,满足工作需求以后需要再花一定的时间用原生去写自己想要的效果,也许需要很长一段时间,但是在这个基础上,你会把js原生基础,比如
面向对象,css3,html5等等扎实的过心埋在自己的身体里,废话不多说。用highcharts三个理由:①手机适配人家做的确实到位②大数据的支持确实给力③svg的优势展现的淋漓尽致。
  一,官方有基本的常规用法,想学好,文档必须了解透彻,一般都是基于jquery写的例子,但是你也可以自己封装函数,用原生来调取,性能简单测试一下,没发现两者有什么大的区别。highcharts.js
是一些简单图表的框架js,但是要做动态实时数据图,需要highstock.js,其实后者包涵前者,也能使前者的一些效果实现,也就是说引highcharts插件的时候,你有判断选择权。
  <script src="js/jquery-1.7.2.js"></script>
   <script src="js/highstock.js"></script>
二,下面是我工作需求的一些参数,我做一下解释,由于里面参数太多,就不一一做说明。
Highcharts.setOptions({
         global: {//由于时间轴的动态数据,需要把时间格式确定一下,utc是国际时间格式,higharts默认是国际,在中国需要GMT,所以这个需要转变为false。
              useUTC: false
         }
  });//获取当前时间
三,图表配置
$('#container').highcharts({//jquery选中盒子,并且给盒子加图表,这是基本写法。
                    chart: {//所有的配置参数都写在chat这个json里面。
                        events: {//处理一些事件,有click mouseover,load等等,设置其不同的效果,用函数来表达你想要的事件。
                            load: function () {
                                // 设置图标每秒跟新
                                var series = this.series[0];
                                setInterval(function () {
                                    var i=0;
                                    var x = parseInt((new Date()).getTime()), // 当前时间
                                            y = Math.abs((Math.random()-0.5))*20;//每个点两个值 x和y。
                                    series.addPoint([x, y], true, false);//这是动态增加数据的关键,其实增加的区域在对象series里面。addpoint是其一个方法,如需重新渲染的话用update
                                },3000);},
                        },
                        backgroundColor:'#fff',//图表背景色
                        pinchType:'',// 让在移动端可以滑动
                        zoomType : ''//点击缩放 里面可以放 y x xy
                    },
                    colors: ['#434348', '#90ed7d', '#f7a35c', '#8085e9','#f15c80', '#e4d354', '#8085e8', '#8d4653', '#91e8e1'],//颜色数组,会根据不同的区域自动放不同的颜色,一般在蜡烛图和饼状图效果明显
                    credits : { // 网站标识
                        enabled : false//版权为fals 就不会再显示highcharts的logo。
                    },
                    navigator : { // 底部导航内容
                        enabled : false//此处如果为true 就会出现导航,你可以设置下面的效果,让其功能出现,可以拖动缩放突变分辨率
                    },
                    scrollbar : {
                        enabled : false//滑动按钮
                    },
                    rangeSelector : {
                        enabled : false
                    },
                    xAxis: {//x轴设置
                        dateTimeLabelFormats: {//给时间轴格式化,展示你想要的时间效果。
                            second: 'D1'?'%m-%d':'%H:%M:%S',
                            minute: 'D1'?'%m-%d':'%H:%M',
                            hour: 'D1'?'%m-%d':'%H:%M',
                            day: 'D1'?'%m-%d':'%H:%M',
                            week: 'D1'?'%m-%d':'%H:%M',
                            month: 'D1'?'%m-%d':'%H:%M'
                        },
                        top:20,//x轴位置
                        lineColor: '#90ed7d',//轴线的颜色
                        lineWidth: 1,//轴线的宽度
                        type: 'datetime',//声明这是时间轴
                        tickWidth: 1,//轴上刻度宽度
                        tickColor: '#8085e9',//刻度颜色
                        minRange: 360000,//最小差值,这是以时间戳来计算的
                        tickInterval:36e5,//显示刻度的位置,也就是隔多少范围显示一个
                        tickLength:10,//线的长度
                        labels: {//显示内容的设置,颜色或字体的大小。
                            style: {
                                color: '#000',
                                fontSize: '8px'
                            }
                        },
                        plotLines: [{//标示线设置。
                            value: 0,
                            width: 1,
                            color: '#808080'
                        }]
                    },
                    yAxis: {//y轴设置 其实与x轴没啥大的区别,就看你想要什么样的效果。
                        top:20,
                        opposite:true,
                        minorTickInterval:"auto",
                        lineColor: '#8085e9',
                        lineWidth: 0,
                        tickWidth: 0,
                        tickLength:0,
                        tickColor: '#8085e9',
                        title: {
                            text: ''
                        },
                        labels: {
                            style: {
                                color: '#000',
                                fontSize: '8px'
                            }
                        },                         plotLines: [{//这块需要重点说一下,指示线需要设置一定的样式,可以设置显示的位置,线型,粗细,长短,字体,以及text标签。
                            value: 0,
                            color: 'green',
                            dashStyle: 'LongDashDotDot',
                            width: 2,
                            label: {
                                useHTML: true,
                                text: '<strong>订单价:'+0+"</strong>",
                                align:"left"
                            }
                        }]
                    },
                    plotOptions: {//此处更重要,这是你图表的二次解释说明修改的地方,里面可以根据不同的列表样式来着重说明体现
                        area: {//面积图的说明
                            fillColor: {//面积颜色渐变。
                                linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1},
                                stops: [
                                    [0, '#808080'],
                                    [1, Highcharts.Color('#808080').setOpacity(0).get('rgba')]
                                ]
                            },
                            lineWidth: 1,
                            marker: {
                                enabled: false
                            },
                            shadow: false,
                            states: {
                                hover: {
                                    lineWidth: 1
                                }
                            },
                            threshold: null
                        },
                        candlestick: {
                            lineColor: 'black'
                        },
                        boxplot: {
                            fillColor: '#505053'
                        }
                    },
                    series : [{//数据展示的位置,
                        type: 'M1' ?'area':'candlestick',
                        name : 'ha'
                    }
                    ]
                });
五,上面我在chart里面动态增加的数据,如果你想用ajax或者websocket动态增加数据,还可以这么写
$(function () {
            containerPain();//把上面的函数封装 在这儿调用。但是 series是全局变量,需要var 一个。
            setInterval(function () {//此处写ajax或者websocket.
                var x = (new Date()).getTime(), // current time
                        y = 44+(rnd(0.5,0.6));
                series.addPoint(【x,y】);
            }, 1000);
        });
六,简单的介绍说明一下,也许理解有误忘大神指教。

自身对highcharts理解的更多相关文章

  1. HighCharts理解与总结

    摘自:http://www.highcharts.com/docs/getting-started/installation Installation Highcharts requires two ...

  2. Highcharts使用教程(2):设置选项

    Highcharts使用教程(2):设置选项 使用教程 | 作者:走猫步的鱼 | 2013-12-11 09:33:25 | 阅读 16次 评论 1 概述:JavaScript图表工具Highchar ...

  3. HighCharts日期及数值格式化

    1.函数原型   1 dateFormat(Stringformat,[Numbertime],[Booleancapitalize])::String 2.说明 格式化JavaScript 时间(也 ...

  4. Highcharts图形报表的简单使用

    Highcharts是一个纯JavaScript框架,与MSChart完全不一样,可以在网页中使用,所以php.asp.net.jsp等等页面中都可以使用.Highcharts官网:http://ww ...

  5. HighCharts -教程+例子

    Highchart简介:   Highcharts是一款免费开源的纯javascript编写的图表库,能够很简单便捷的在Web网站或Web应用中添加交互性的图表,  Highcharts目前支持直线图 ...

  6. highcharts 结合phantomjs纯后台生成图片

    highcharts 结合phantomjs纯后台生成图片 highcharts 这个图表展示插件我想大家应该都知道,纯javascript编写,相比那些flash图表插件有很大的优势,至少浏览器不用 ...

  7. 基于Hadoop技术实现的离线电商分析平台(Flume、Hadoop、Hbase、SpringMVC、highcharts)

    离线数据分析平台是一种利用hadoop集群开发工具的一种方式,主要作用是帮助公司对网站的应用有一个比较好的了解.尤其是在电商.旅游.银行.证券.游戏等领域有非常广泛,因为这些领域对数据和用户的特性把握 ...

  8. highcharts 系统梳理笔记

    前言 highcharts最早接触它是在4年前,后来项目中很少用到图表这些东西,就算有也是用echart.他们思路都一样自己去官网上看api即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...

  9. 基于ssh框架的highcharts前后台数据交互实例

    Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用.HighCh ...

随机推荐

  1. Freemark基本语法知识(转)

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输 ...

  2. CentOS下解压缩命令

    ——————————————— .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) —————— ...

  3. Android TextView设置多彩文字

    在应用开发中时常会遇到需要在一段文字中插入几个不一样颜色文字的需求; 以前本人都是用多个TextView拼起来,不仅感觉很蠢,操作起来也蛮恶心; 直到接触到了SpannableStringBuilde ...

  4. 对字符串进行简单的字符数字统计 探索java中的List功能

    题目: 统计一个字符串中数字和字符串的个数,并分别进行排列,要求 1.数字,字符串可以从键盘获取. 2.储存在list 3.统计数字个数,字符串个数 4.把数字和字符串按从小到大的顺序输出 5.不能使 ...

  5. 【转】oracle内存分配和调优总结

    转自 http://blog.itpub.net/12272958/viewspace-696834/ 一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且 ...

  6. 基于Bootstrap的JQuery TreeView树形控件,数据支持json字符串、list集合(MVC5)<二>

    上篇博客给大家介绍了基于Bootstrap的JQuery TreeView树形控件,数据支持json字符串.list集合(MVC5)<一>, 其中的两种方式都显得有些冗余.接着上篇博客继续 ...

  7. Angular2 CLI 快速开发

    Angular2 CLI 快速开发 http://www.tuicool.com/articles/z6V3Ubz 解决npm 的 shasum check failed for错误(npm注册国内镜 ...

  8. JSON数据;

    1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 2.JSON的规则很简单: 对象是一个无序的“‘名称/值'对”集合.一个对象以“{”(左括号)开始, ...

  9. ES6笔记一

    遍历数组: 1:传统的 for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]);} ...

  10. JAVA的单例模式与延时加载

    延迟加载(lazy load)是(也称为懒加载),也叫延迟实例化,延迟初始化等,主要表达的思想就是:把对象的创建延迟到使用的时候创建,而不是对象实例化的时候创建.延迟加载机制是为了避免一些无谓的性能开 ...