HighChart学习-更新数据data Series与重绘

简介: 一:HighChart介绍 基于JQuery的纯JavaScript的图标库,支持各种图表显示,同时还支持Mootools 与Prototype详细版本支持在这里: JQuery 1.3.2 - 1.9.x. 2.0.x for modern browsers Mootools 1.2.5 - 1.4.5 Prototype 1.7 支持目前市场几乎所有的主要浏览器IE, Chrome, FF,Safari, Opera等。

一:HighChart介绍

基于JQuery的纯JavaScript的图标库,支持各种图表显示,同时还支持Mootools

与Prototype详细版本支持在这里:

JQuery

1.3.2 - 1.9.x. 2.0.x for modern browsers

Mootools

1.2.5 - 1.4.5

Prototype

1.7

支持目前市场几乎所有的主要浏览器IE, Chrome, FF,Safari, Opera等。其图形渲染完

全是是基于SVG与VML方式,其中VML方式主要是兼容IE浏览器,在IE9+及其它浏览

器上渲染技术都是基于SVG方式。下载与安装指导文档

->http://docs.highcharts.com/#home安装好以后,建一个基本static web 项目,如图

所示:

二:HighChart基本的Bar Chart演示

打开链接->http://docs.highcharts.com/#your-first-chart

拷贝your first chart中第二步中的全部script脚本到mydemo.html中的<script></script>

之间。导入JQuery与highchart库文件支持。代码如下:

<scriptsrc="static/jquery-1.9.1/jquery-1.9.1.min.js"></script>

<scriptsrc="static/highcharts-3.0.1/js/highcharts.js"></script>

在tomcat中部署demo1之后访问如下URL:http://localhost:8080/demo1/mydemo.html

在浏览器中看到如下Bar Chart:

三:清除HighChart中的数据集(remove data series from high chart object)

代码修改:

1.      把type:’bar’ 改成type: ’column’ 其作用是让bar垂直显示

2.      向script尾部追加如下代码,自动清除所有series然后刷新

            setTimeout(function(){

               var series=chart.series;            

               while(series.length > 0) {

                    series[0].remove(false);

                }

                chart.redraw();

           },2000);

四:向HighChart中添加data series(add new data series into high chart object)

向script的尾部追加如下代码,实现添加data series并刷新bar chart

            setTimeout(function(){

              chart.addSeries({                       

                 id:1,

                 name:"gloomyfish",

                 data:[1,2,3]

             },false);

              chart.addSeries({                       

                 id:2,

                 name:"wang-er-ma",

                 data:[5,2,1]

             },false);

              chart.addSeries({                       

                 id:3,

                 name:"zhang-san",

                 data:[4,8,6]

             },false);

                chart.redraw();

           },2000);

addSeries方法中第二个参数false表示不重绘plot,等所有series添加完成调用redraw

方法重绘。

 

五:在chart中清除high chart官方链接(remove high chart official hyperlink in chart)

仔细观察在Bar Chart的右下角有个highchart的官方链接,当然希望去掉,只要在chart

声明中将credits声明设置改为false即可。代码如下:

credits: {enabled: false// remove high chart logo hyper-link},

六:完整Demo源码

<html>
<head>
<script src="static/jquery-1.9.1/jquery-1.9.1.min.js"></script>
<script src="static/highcharts-3.0.1/js/highcharts.js"></script>
<title>My Demo 1</title>
	<script>
		$(function() {
			var chart;
			
			// initialization chart and actions
		    $(document).ready(function () {
		        chart = new Highcharts.Chart({
				    chart: {
				    	renderTo: 'my_container',
				        type: 'column'
				    },
				    title: {
				        text: 'Fruit Consumption'
				    },
				    xAxis: {
				        categories: ['Apples', 'Bananas', 'Oranges']
				    },
				    yAxis: {
				        title: {
				            text: 'Fruit eaten'
				        }
				    },
		        	credits: {
		        		enabled: false // remove high chart logo hyper-link
		        	},
				    series: [{
				        name: 'Jane',
				        data: [1, 0, 4]
				    }, {
				        name: 'John',
				        data: [5, 7, 3]
				    }]
				});
		        
		        // JQuery, mouse click event bind with dom buttons
		        $('#clear-button').on('click', function (e) {
		        	clearPlot();
		        });
		        
		        $('#refresh-button').on('click', function (e) {
		        	refreshPlot();
		        });
		    });
		    
		    // clear all series of the chart
		    function clearPlot() {
		    	//console.log("clear plot data!!!");
	            var series=chart.series;	            
	            while(series.length > 0) {
	                series[0].remove(false);
	            }
	            chart.redraw();
		    };
		    
		    function refreshPlot() {
		    	//console.log("refresh plot data!!!");
            	chart.addSeries({                        
        			id:1,
        			name: "gloomyfish",
        			data: [1,2,3]
        		}, false);
            	chart.addSeries({                        
        			id:2,
        			name: "wang-er-ma",
        			data: [5,2,1]
        		}, false);
            	chart.addSeries({                        
        			id:3,
        			name: "zhang-san",
        			data: [4,8,6]
        		}, false);
            	
	            chart.redraw();
		    };
		    
            setTimeout(function(){
	            var series=chart.series;	            
	            while(series.length > 0) {
	                series[0].remove(false);
	            }
	            chart.redraw();
            },2000);
		    
		    // add new series for the chart
            setTimeout(function(){
            	chart.addSeries({                        
        			id:1,
        			name: "gloomyfish",
        			data: [1,2,3]
        		}, false);
            	chart.addSeries({                        
        			id:2,
        			name: "wang-er-ma",
        			data: [5,2,1]
        		}, false);
            	chart.addSeries({                        
        			id:3,
        			name: "zhang-san",
        			data: [4,8,6]
        		}, false);
            	
	            chart.redraw();
            },2000);
		});
	</script>
</head>
<body>
<h1>High Chart Demo 1</h1>
<div id="my_container" style="width:600px; height:600px;"></div>
<div id="btn-group">
	<button type="button" id="clear-button">Clear Plot</button>
	<button type="button" id="refresh-button">Draw Plot</button>
</div>
</body>
</html>
运行效果如下:


目录
相关文章
|
6月前
|
JavaScript 前端开发 Java
14jqGrid - 一次性加载数据
14jqGrid - 一次性加载数据
27 0
|
9月前
Echarts实战GEO3D和bar3D延迟显示动画发光柱图的练习(未成功)
Echarts实战GEO3D和bar3D延迟显示动画发光柱图的练习(未成功)
77 0
|
18天前
使用Vant框架的组件van-pull-refresh搭配van-list和van-card完成上滑加载更多列表数据,下拉刷新当前列表数据(等同于翻页功能)
使用Vant框架的组件van-pull-refresh搭配van-list和van-card完成上滑加载更多列表数据,下拉刷新当前列表数据(等同于翻页功能)
|
17天前
|
前端开发
chart.js 重复绘图问题
chart.js 重复绘图问题
|
6月前
232Echarts - 3D 柱状图(Noise modified from marpi's demo)
232Echarts - 3D 柱状图(Noise modified from marpi's demo)
25 0
232Echarts - 3D 柱状图(Noise modified from marpi's demo)
|
9月前
|
前端开发 数据格式
Descriptions组件渲染多条数据及带有图片时如何处理
Descriptions组件渲染多条数据及带有图片时如何处理
156 0
|
JavaScript UED
解决 Element-ui中 选择器(Select)因options 数据量大导致渲染慢、页面卡顿的问题
解决 Element-ui中 选择器(Select)因options 数据量大导致渲染慢、页面卡顿的问题
3084 0
解决 Element-ui中 选择器(Select)因options 数据量大导致渲染慢、页面卡顿的问题
|
11月前
Vue2.x-05 iview的Select控件点击从后台加载数据
Vue2.x-05 iview的Select控件点击从后台加载数据
70 0
echarts两个折线图共用x轴且合并tooltip功能代码
echarts两个折线图共用x轴且合并tooltip功能代码
323 0
|
前端开发
前端面试题:1.页面加载完成(onload)之前触发的事件;2.History,Location,Window,Navigation的区别;3.e.target和e.currentTarget的区别
★Navagator:提供有关浏览器的信息 ★Window: Window对象处于对象层次的最顶层, 它提供了处理Navagator窗口的方法和属性 ★Location:提供了与当前打开的URL-工作的方 法和属性,是一个静态的对象 ★History:提供了与历史清单有关的信息 ★Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用
221 0