⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chart.js

📁 dojo-0.4.0-ajax.zip ajax一个应用。在页面上可以直接用标签。此为ajax的框架
💻 JS
📖 第 1 页 / 共 2 页
字号:
		this.assignColors();		this._isInitialized=true;	},	destroy:function(){		//	summary		//	Node cleanup		while(this.domNode.childNodes.length>0){			this.domNode.removeChild(this.domNode.childNodes[0]);		}		this.vectorNode=this.plotArea=this.dataGroup=this.axisGroup=null;	},	render:function(){		//	summary		//	Draws the data on the chart		if (this.dataGroup){			while(this.dataGroup.childNodes.length>0){				this.dataGroup.removeChild(this.dataGroup.childNodes[0]);			}		} else {			this.init();		}		for(var i=0; i<this.series.length; i++){			dojo.widget.vml.Chart.Plotter.plot(this.series[i], this);		}	},	postCreate:function(){		//	summary		//	Parse any data if included with the chart, and kick off the rendering.		var table=this.domNode.getElementsByTagName("table")[0];		if (table){			var ranges=this.parseProperties(table);			var bRangeX=false;			var bRangeY=false;					//	fix the axes			var axisValues = this.parseData(table);			if(!bRangeX){				this.properties.axes.x.range={min:axisValues.x.min, max:axisValues.x.max};			}			if(!bRangeY){				this.properties.axes.y.range={min:axisValues.y.min, max:axisValues.y.max};			}			this.setAxesPlot(table);			//	table values should be populated, now pop it off.			this.domNode.removeChild(table);		}		if(this.series.length>0){			this.render();		}	}});dojo.widget.vml.Chart.Plotter=new function(){	//	summary	//	Singleton for plotting series of data.	var self=this;	var plotters = {};	var types=dojo.widget.Chart.PlotTypes;		this.getX=function(/* string||number */value, /* dojo.widget.Chart */chart){		//	summary		//	Calculate the x coord on the passed chart for the passed value		var v=parseFloat(value);		var min=chart.properties.axes.x.range.min;		var max=chart.properties.axes.x.range.max;		var ofst=0-min;		min+=ofst; max+=ofst; v+=ofst;		var xmin = 0;		var xmax=chart.properties.width-chart.properties.padding.left-chart.properties.padding.right;		var x=(v*((xmax-xmin)/max))+xmin;		return x;	};	this.getY=function(/* string||number */value, /* dojo.widget.Chart */chart){		//	summary		//	Calculate the y coord on the passed chart for the passed value		var v=parseFloat(value);		var max=chart.properties.axes.y.range.max;		var min=chart.properties.axes.y.range.min;		var ofst=0;		if(min<0)ofst+=Math.abs(min);		min+=ofst; max+=ofst; v+=ofst;				var ymin=chart.properties.height-chart.properties.padding.top-chart.properties.padding.bottom;		var ymax = 0;		var y=(((ymin-ymax)/(max-min))*(max-v))+ymax;		return y;	};	this.addPlotter=function(/* string */name, /* function */func){		//	summary		//	add a custom plotter function to this object.		plotters[name]=func;	};	this.plot=function(/* dojo.widget.Chart.DataSeries */series, /* dojo.widget.Chart */chart){		//	summary		//	plot the passed series.		if (series.values.length==0) return;	//	void		if (series.plotType && plotters[series.plotType]){			return plotters[series.plotType](series, chart);	//	void		}		else if (chart.plotType && plotters[chart.plotType]){			return plotters[chart.plotType](series, chart);		//	void		}	};	//	plotting	plotters["bar"]=function(/* dojo.widget.Chart.DataSeries */series, /* dojo.widget.Chart */chart){		//	summary		//	plot the passed series as a set of bars.		var space=1;		var lastW = 0;		var ys = [];		var yAxis=self.getY(chart.properties.axes.x.plotAt, chart);		var yA = yAxis;		for (var i=0; i<series.values.length; i++){			var x=self.getX(series.values[i].x, chart);			var w;			if (i==series.values.length-1){				w=lastW;			} else{				w=self.getX(series.values[i+1].x, chart)-x-space;				lastW=w;			}			x-=(w/2);			var y=self.getY(series.values[i].value, chart);			var h=Math.abs(yA-y);			if (parseFloat(series.values[i].value) < chart.properties.axes.x.plotAt){				y=yA;			}			var bar=document.createElement("v:rect");			bar.style.position="absolute";			bar.style.top=y+"px";			bar.style.left=x+"px";			bar.style.width=w+"px";			bar.style.height=h+"px";			bar.setAttribute("fillColor", series.color);			bar.setAttribute("stroked", "false");			bar.style.antialias="false";			bar.setAttribute("title", series.label + " (" + i + "): " + series.values[i].value);			var fill=document.createElement("v:fill");			fill.setAttribute("opacity", "0.9");			bar.appendChild(fill);			chart.dataGroup.appendChild(bar);		}	};		plotters["line"]=function(/* dojo.widget.Chart.DataSeries */series, /* dojo.widget.Chart */chart){		//	summary		//	plot the passed series as a line with tensioning		var tension=1.5;		var line=document.createElement("v:shape");		line.setAttribute("strokeweight", "2px");		line.setAttribute("strokecolor", series.color);		line.setAttribute("fillcolor", "none");		line.setAttribute("filled", "false");		line.setAttribute("title", series.label);		line.setAttribute("coordsize", chart.properties.width + "," + chart.properties.height);		line.style.position="absolute";		line.style.top="0px";		line.style.left="0px";		line.style.width= chart.properties.width+"px";		line.style.height=chart.properties.height+"px";		var stroke=document.createElement("v:stroke");		stroke.setAttribute("opacity", "0.85");		line.appendChild(stroke);		var path = [];		for (var i=0; i<series.values.length; i++){			var x = Math.round(self.getX(series.values[i].x, chart));			var y = Math.round(self.getY(series.values[i].value, chart));			if (i==0){				path.push("m");				path.push(x+","+y);			}else{				var lastx=Math.round(self.getX(series.values[i-1].x, chart));				var lasty=Math.round(self.getY(series.values[i-1].value, chart));				var dx=x-lastx;				var dy=y-lasty;								path.push("c");				var cx=Math.round((x-(tension-1)*(dx/tension)));				path.push(cx+","+lasty);				cx=Math.round((x-(dx/tension)));				path.push(cx+","+y);				path.push(x+","+y);			}		}		line.setAttribute("path", path.join(" ")+" e");		chart.dataGroup.appendChild(line);	};	plotters["area"]=function(/* dojo.widget.Chart.DataSeries */series, /* dojo.widget.Chart */chart){		//	summary		//	plot the passed series as an area with tensioning.		var tension=1.5;		var line=document.createElement("v:shape");		line.setAttribute("strokeweight", "1px");		line.setAttribute("strokecolor", series.color);		line.setAttribute("fillcolor", series.color);		line.setAttribute("title", series.label);		line.setAttribute("coordsize", chart.properties.width + "," + chart.properties.height);		line.style.position="absolute";		line.style.top="0px";		line.style.left="0px";		line.style.width= chart.properties.width+"px";		line.style.height=chart.properties.height+"px";		var stroke=document.createElement("v:stroke");		stroke.setAttribute("opacity", "0.8");		line.appendChild(stroke);		var fill=document.createElement("v:fill");		fill.setAttribute("opacity", "0.4");		line.appendChild(fill);		var path = [];		for (var i=0; i<series.values.length; i++){			var x = Math.round(self.getX(series.values[i].x, chart));			var y = Math.round(self.getY(series.values[i].value, chart));			if (i==0){				path.push("m");				path.push(x+","+y);			}else{				var lastx=Math.round(self.getX(series.values[i-1].x, chart));				var lasty=Math.round(self.getY(series.values[i-1].value, chart));				var dx=x-lastx;				var dy=y-lasty;								path.push("c");				var cx=Math.round((x-(tension-1)*(dx/tension)));				path.push(cx+","+lasty);				cx=Math.round((x-(dx/tension)));				path.push(cx+","+y);				path.push(x+","+y);			}		}		path.push("l");		path.push(x + "," + self.getY(0, chart));		path.push("l");		path.push(self.getX(0, chart) + "," + self.getY(0,chart));		line.setAttribute("path", path.join(" ")+" x e");		chart.dataGroup.appendChild(line);	};	plotters["scatter"]=function(/* dojo.widget.Chart.DataSeries */series, /* dojo.widget.Chart */chart){		//	summary		//	plot the passed series as a scatter chart		var r=6;		for (var i=0; i<series.values.length; i++){			var x=self.getX(series.values[i].x, chart);			var y=self.getY(series.values[i].value, chart);			var mod=r/2;			var point=document.createElement("v:rect");			point.setAttribute("fillcolor", series.color);			point.setAttribute("strokecolor", series.color);			point.setAttribute("title", series.label + ": " + series.values[i].value);			point.style.position="absolute";			point.style.rotation="45";			point.style.top=(y-mod)+"px";			point.style.left=(x-mod)+"px";			point.style.width=r+"px";			point.style.height=r+"px";			var fill=document.createElement("v:fill");			fill.setAttribute("opacity", "0.6");			point.appendChild(fill);			chart.dataGroup.appendChild(point);		}	};		plotters["bubble"]=function(/* dojo.widget.Chart.DataSeries */series, /* dojo.widget.Chart */chart){		//	summary		//	plot the passed series as a series of bubbles (scatter with 3rd dimension)		//	added param for series[n].value: size		var minR=1;				//	do this off the x axis?		var min=chart.properties.axes.x.range.min;		var max=chart.properties.axes.x.range.max;		var ofst=0-min;		min+=ofst; max+=ofst;		var xmin=chart.properties.padding.left;		var xmax=chart.properties.width-chart.properties.padding.right;		var factor=(max-min)/(xmax-xmin)*25;				for (var i=0; i<series.values.length; i++){			var size = series.values[i].size;			if (isNaN(parseFloat(size))) size=minR;			var radius=(parseFloat(size)*factor)/2;			var diameter=radius * 2;			var cx=self.getX(series.values[i].x, chart);			var cy=self.getY(series.values[i].value, chart);			var top=cy-radius;			var left=cx-radius;			var point=document.createElement("v:oval");			point.setAttribute("fillcolor", series.color);			point.setAttribute("title", series.label + ": " + series.values[i].value + " (" + size + ")");			point.setAttribute("stroked", "false");			point.style.position="absolute";						point.style.top=top+"px";			point.style.left=left+"px";			point.style.width=diameter+"px";			point.style.height=diameter+"px";			var fill=document.createElement("v:fill");			fill.setAttribute("opacity", "0.8");			point.appendChild(fill);						chart.dataGroup.appendChild(point);		}	};}();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -