[笔记]学习HighCharts的使用(不错的web图表插件)

最近有一个小项目需要用到折线图。到处请教了一下,有人给我推荐了highcharts。感觉还不错,就稍微学习下。这里记录一下学习的过程。

网上相关的内容还不少,我就说一下我学习的内容。

看的第一篇文章《HighCharts入门》,正如它的名字一样,很好的讲解了各种参数以及使用步骤1234。

看的第二篇文章《HighCharts使用指南》,有一个很不错的结合后端读取数据实时更新图表的例子。但是有一点,用push添加数据我始终没有成功过……所以我有在网路上搜索了一番,解答终于让我在《HighChart学习-更新数据data Series与重绘》这里找到。后面我写的小实例就是用了这种方式。

如果还想更深入了解的话可以下载api,我这里有一版,打开看的时候如果啥都没有看看有没有报文件没找到的错,然后把js的路径对应上就可以看了「点这里下载」如果不管用也可以百度搜,资源很多的。

还有一个网址,介绍的比较详细,但是并没有完工,《HighCharts中文教程》。

附上我写的一个简单的例子。代码如下:

  1 <!DOCTYPE>
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>無標題文件</title>
  6 <!--引用js文件-->
  7 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
  8 <script src="http://code.highcharts.com/highcharts.js"></script>
  9 <script src="http://code.highcharts.com/modules/exporting.js"></script>
 10 <!--绘制图表-->
 11 <script type="text/javascript">
 12 var chart;
 13 var data_name;
 14 $(function(){
 15     chart=new Highcharts.Chart({
 16         chart:{
 17             renderTo:‘chartsContainer‘
 18         },
 19         title:{
 20             text:‘折线图的标题‘,
 21             x:-20//中间的位置
 22         },
 23         subtitle:{
 24             text:‘折线图的副标题‘,
 25             x:-20
 26         },
 27         xAxis:{
 28             title:{
 29                 text:‘x轴名称‘,
 30             },
 31             categories:[‘x1‘, ‘x2‘, ‘x3‘, ‘x4‘, ‘x5‘, ‘x6‘,‘x7‘]
 32         },
 33         yAxis:{
 34             title:{
 35                 text:‘y轴名称‘,
 36             }
 37         },
 38         colors:[
 39             ‘#FF0000‘,//红
 40             ‘#00FF00‘,//绿
 41             ‘#0000FF‘,//蓝
 42             ‘#FFFF00‘,//黄
 43           ],
 44         //在这里填充折线图数据
 45         series:[
 46             {
 47                 name:"数据1",
 48                 data:[1,2.25,3,3.25,3,2.25,1]
 49             },
 50             {
 51                 name:"数据2",
 52                 data:[-1,2.25,5,6,5,2.25,-1]
 53             }
 54         ],
 55         tooltip:{
 56             valueSuffix:"单位"
 57         },
 58         credits:{
 59             href:"http://www.cnblogs.com/SHL-sherly/",
 60             text:"SHL-博客园",
 61             position:{x:-30,y:-20}
 62         },
 63         //图例的样式,放置于图表中
 64         legend:{
 65             layout:‘vertical‘,
 66             align:‘right‘,
 67             verticalAlign:‘top‘,
 68             x:-40,
 69             y:100,
 70             floating:true,
 71             borderWidth:1,
 72             backgroundColor:(Highcharts.theme && Highcharts.theme.legendBackgroundColor || ‘#FFFFFF‘),
 73             shadow:true
 74         }
 75     });
 76
 77     for(var i=0;i<7;i++)
 78     {
 79         $("#dataswrapper").append(‘<input type="text" class="datainput"/>‘);
 80     }
 81     $("#dataswrapper").append(‘<input type="button" value="确认增加" onclick="addNewRecord();"/>‘)
 82 });
 83 function disp_prompt()
 84 {
 85     var dataname=prompt("请输入数据名称","数据1");
 86     if(dataname!=null&&dataname!="")
 87     {
 88         data_name=dataname;
 89         $("#dataswrapper").show();
 90     }
 91 }
 92 function addNewRecord()
 93 {
 94     var array="";
 95     $("#dataswrapper input.datainput").each(function() {
 96         if($(this).val()!=null&&$(this).val()!=""&&isNumber($(this).val()))
 97             array+=$(this).val()+",";
 98         else
 99             array+=0+",";
100         $(this).val(null);
101     });
102     //字符串变成字符串数组
103     array=array.trim(‘,‘).split(‘,‘);
104     //这里要转化成数值才行,不知有没有更好的方法
105     for(var i=0;i<array.length;i++){
106         array[i]=parseFloat(array[i]);
107     }
108     //增加数据关键代码
109     chart.addSeries({
110         name:data_name,
111         data:array
112     },true);
113
114     $("#dataswrapper").hide();
115 }
116 //判断是否是数字
117 function isNumber(number)
118 {
119     var regEx=/^[0-9]+.?[0-9]*$/;
120     return regEx.test(number);
121 }
122 //trim方法重写,⊙﹏⊙b汗
123 String.prototype.trim=function(c)
124 {
125     if(c==null||c=="")
126     {
127         var regEx=new RegExp("/^/s*/");
128         var str=this.replace(regEx,‘‘);
129         regEx=new RegExp("//s/");
130         var i=str.length;
131         while(regEx.test(str.charAt(--i)));
132         return str.slice(0,i+1);
133     }
134     else
135     {
136         var regEx=new RegExp("^"+c+"*");
137         var str=this.replace(regEx,‘‘);
138         regEx=new RegExp(c);
139         var i=str.length;
140         while(regEx.test(str.charAt(--i)));
141         return str.slice(0,i+1);
142     }
143 }
144 </script>
145 <style type="text/css">
146 .datainput{
147     width:35px;
148 }
149 </style>
150 </head>
151
152 <body>
153 <!--绘制图表的div-->
154 <div id="chartsContainer" style="width:60%;height:500px;float:left"></div>
155 <div>
156 <input type="button" value="点此添加一条数据" onClick="disp_prompt()"/>
157 <div id="dataswrapper" style="display:none;">
158 <p>输入数据值(其实未必要按照x轴规定的七个,x轴和y轴会根据数据而变化,这里为了方便。另外不规范数据会被置0)</p>
159 </div>
160 <p style="color:red;font-size:12px;">*点击图例中的数据名,可以显示隐藏这条数据的所有记录,图表形状也会发生改变</p>
161 </div>
162 </body>
163 </html>

运行效果演示:

另外说些题外话吧。用博客园几天来,只写了一点点文章,而且都没有什么技术水准。不但没有什么技术水准,文笔也烂的很!干巴巴的半天掰不出几个字来,最后搞得跟写实验报告似的。用这么正理八经的风格行文还要行云流水臣妾真是做不到啊!和我当初设想写出和别人一样整整齐齐又美丽的文章的想法相去甚远啊……咳咳,扯远了,其实我并没有想要如何如何,就是想记录下我这只菜鸟扑腾翅膀的历程,如果有和我一样的,还在这些简单的问题上扑腾的人,要是我写的东西能帮助你分毫,我简直开心的不得了。

以后我还是会继续写着我学到的东西。使劲儿扑腾。就算一时半会儿成不了大神,至少也要从一只菜鸟扑腾成一只大鸟。←_←别想歪,我的性别不允许我拥有那个东西。

——我怎么一扯起这些废话来就这么来劲呢!

时间: 2024-10-06 01:28:26

[笔记]学习HighCharts的使用(不错的web图表插件)的相关文章

web多终端开发学习系列(四)--- web图表插件

对于数据的显示除了可以用表格外,还可以使用图表来更好.更直观地表达数据,比如数据的趋势可以用折线图,数据的比例可以用饼图等等.所以在web的开发过程中图表的应用非常广泛,对于图表的js框架我找到了Chart.js和Highcharts.Chart支持响应式布局,而Highcharts不支持,但是Highcharts的功能更全面. 介绍 Chart.js的官网是:http://www.bootcss.com/p/chart.js/,Chart.js不依赖于第三方类库,只需导入Chart.js即可.

利用Highcharts制作web图表学习(一)

前言:最近项目中需要对数据进行汇总和分析得出柱状图或曲线图这样散装点图,经过学习和测试发现Highchart不错,如果大家项目中需要的话,不妨看看有的例子摘自官网 一.先说说HighCharts的主要特性包括: 1.兼容性:HighCharts采用纯JavaScript编写,兼容当今大部分的浏览器,包括Safari.IE和火狐等等: 2.图表类型:HighCharts支持图表类型,包括曲线图.区域图.柱状图.饼状图.散状点图和综合图表等等,可以满足各种需求. 3.不受语言约束:HighChart

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

学习笔记——Maven实战(五)自动化Web应用集成测试

自动化集成测试的角色 本专栏的上一篇文章讲述了Maven与持续集成的一些关系及具体实践,我们都知道,自动化测试是持续集成必不可少的一部分,基本上,没有自动化测试的持续集成,都很难称之为真正的持续集成.我们希望持续集成能够尽早的暴露问题,但这远非配置一个 Hudson/Jenkins服务器那么简单,只有真正用心编写了较为完整的测试用例,并一直维护它们,持续集成才能孜孜不倦地运行测试并第一时间报告问题. 自动化测试这个话题很大,本文不想争论测试先行还是后行,这里强调的是测试的自动化,并基于具体的技术

jqueryrotate 使用 帮助 笔记 学习

1.想变角度 $("imgID").rotate(45); 2.想变角度时,有运动过程 $("imgID").rotate({animateTo:45}); 这里可以说参数了  animateTo: 变化到的角度 3.想从A角度到B角度,有动画过程 $("imgID").rotate({angle:A, animateTo:B}); angle: 起始角度 4.第3点,时间太久了,想500MS完成 $("imgID").rot

C++的笔记学习第一篇,认识C++

在一个类中包含两种成员: 数据和函数,分别称为C++数据成员和成员函数. 关于类: 类是C++新增加的重要数据类型,有了类,就就可以实现面向对象程序设计方法中的封装.信息隐蔽.继承.派生.多态等功能. 关于函数的重载 在编程时,有时我们要实现的是同一类的功能,只是有些细节不同.例如希望从3个数中找出其中的最大者,而每次求最大数时数据的类型不同,可能是3个整数.3个双精度数或3个长整数. 程序设计者往往会分别设计出3个不同名的函数,其函数原型为:int max1(int a int b, int

三年程序学习之二:(对web初认识)

接着上一篇讲,之后第二天我就来公司上班了,主要是前端,CSS+DIV,table,网站维护之类的,这样的日子过了将近3个星期,一直没什么进展,自己也学不到什么技术,不过我觉得CSS+DIV我算是基础的会了,经常去w3c去学校,程序也接触了一些,小公司吗,能接触到的只有ASP,ACCESS之类的学习了.也还算一般吧,自己的发展目标也是以WEB为职业发展的,既然这样前端这些必须都得了解.这三个星期过后,然后给我的是一些有关服务器的工作内容了,终于有机会接触了服务器相关工作,每天在万网上主持域名,然后

学习响应式设计(Learning Responsive Web Design)完整版PDF

想要为平板.手机.笔记本.大屏幕设备,甚至可穿戴设备提供最优的用户体验?那就学习响应式设计吧.这是一本内容特别全面.讲解非常透彻的入门书.特别地,通过这本书不仅能迅速掌握响应式Web设计的基本原理,还能够从头到尾了解响应式设计的工作流程:从项目启动开始,到项目最终上线为止. 只要你的工作与创建.改造或者升级网站有关系,都应该看看这本书.换句话说,不仅是前端开发人员,设计师.产品经理.项目经理,甚至后端开发人员也可以通过本书掌握响应式设计的精髓所在.这本书基于响应式设计的前沿技术和社区经验写成,汇

学习——JavaWeb02:修改端口和web项目发布

学习--JavaWeb02:修改端口和web项目发布 壹:修改端口 1.         Tomcat服务器的配置,全部都需要在tomcat的安装目录下conf目录下完成: Tomcat的默认端口号是8080: 找到Tomcat->conf目录下的server.xml文件,双击打开: 很容易就能看到端口号有关的代码,将之修改为你要修改的端口号(注意端口号的取值范围:1-65535). 贰:项目发布 1.        只要把开发好的项目复制到webapps下面即可.这时候不用重启Tomcat服务