function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
$.each(data,function(i,d){
if(d.value>max){
max = d.value;
}
});
max = max + (4-(max%4));
var chartXStart = 30;
var chartYStart = 10;
var chartXEnd = chartXStart+width;
var chartYEnd = chartYStart+height;
for(var i=0;i<5;i++){
var axis = (max-parseInt(max*i/4));
var lineY = 10+i*(height/4);
paper.text(10,lineY,axis);
if(i!=0 && i!=4){
var path = paper.path("M"+chartXStart+" "+lineY+"L"+chartXEnd+" "+lineY);
path.attr({"fill":"red","stroke-opacity":0.5,"stroke-width":0.5});
}
}
var path = paper.path("M"+chartXStart+" "+chartYStart+"L"+chartXStart+" "
+chartYEnd+",M"+chartXStart+" "+chartYEnd+"L"+chartXEnd+" "+chartYEnd);
path.attr({"arrow-end":'block-wide-midium',stroke:'blue'});
var pathAttr = "";
var mx = chartXStart + 20,my = 10;
var points = [];
var dataSpan = 75;
$.each(data,function(i,d){
if(i==0){
my = chartYEnd;
if(max==0){
my = chartYEnd;
}else{
my = chartYEnd - parseInt((100/max)*d.value);
}
mx += i*dataSpan;
}else{
var lx = mx + dataSpan;
var ly = 100;
if(max==0){
ly = 100;
}else{
ly = chartYEnd - parseInt((100/max)*d.value);
}
if(pathAttr==""){
pathAttr = "M"+mx+" "+my+"L"+lx+" "+ly;
}else{
pathAttr += ",M"+mx+" "+my+"L"+lx+" "+ly;
}
mx = lx;
my = ly;
}
points.push({
x:mx,
y:my,
data:d.value,
label:d.label
});
});
var dataPath = paper.path(pathAttr);
dataPath.attr({stroke:'yellow'});
var showData;
var backRect;
$.each(points,function(i,d){
var glow;
var circle = paper.circle(d.x,d.y,3).attr({fill:'blue',cursor:'pointer'}).mouseover(function(){
glow = this.glow({color:'blue',width:5});
backRect = paper.rect(this.attrs.cx+15,this.attrs.cy-10,30,20,2);
backRect.attr({fill:'white'});
showData = paper.text(this.attrs.cx+30,this.attrs.cy,d.data);
}).mouseout(function(){
if(glow){
glow.remove();
}
if(showData){
showData.remove();
}
if(backRect){
backRect.remove();
}
});
paper.text(d.x,chartYEnd+20,d.label);
});
}
$(function(){
var paper = new Raphael("report");
var attr = {
width:260,
height:100
}
$.post("json/getStatistics.php",function(data){
// 绘制横竖坐标
drawReport(paper,attr,data);
},"json");
});
相关推荐
用图表说话—高级经理商务图表指南,用图表说话—高级经理商务图表指南.
一套数据可视化图表通用组件库,主要由Antv静态图表、Axhub动态图表、地图组件素材三部分内容组成,其中包含了几十种常用图表类型和全国34个省级行政区地图,可以满足大部分的原型设计图表展示需求。 Antv静态图表...
Visual C++源代码 196 如何使用自动化生成Excel图表Visual C++源代码 196 如何使用自动化生成Excel图表Visual C++源代码 196 如何使用自动化生成Excel图表Visual C++源代码 196 如何使用自动化生成Excel图表Visual ...
适合uni-app 使用的echarts图表组件,开箱即用!
相关说明地址: vue 中添加 echarts ,然后在 vue 中简单使用一些 echarts中常用的图表,包括一些动态的图表、3D的图表等 ,如果有不足之处,欢迎指出,或者你有更好的方法,欢迎留言。
用vc++6.0做的图表 非常适合各类图表制作
用图表说话(say it with charts) 用图表说话(say it with charts) 用图表说话(say it with charts)
Axure数据图表元件(柱图、饼图、雷达图、折线图、面积图)Axure数据图表元件Axure数据图表元件Axure数据图表元件 Axure数据图表元件(柱图、饼图、雷达图、折线图、面积图)Axure数据图表元件Axure数据图表元件...
使用jquery插件Highcharts做的实时动态的图表,使用ajax访问后台数据(模拟), 代码里有注释说明;
Visual C++源代码 191 如何使用自动化生成Word图表Visual C++源代码 191 如何使用自动化生成Word图表Visual C++源代码 191 如何使用自动化生成Word图表Visual C++源代码 191 如何使用自动化生成Word图表Visual C++源...
Excel可以这样用:商务图表经典案例实战精粹》适合所有想学习Excel图表设计与制作的人员阅读,也适合使用Excel图表进行开发的工程技术人员使用。对于经常使用Excel图表做分析和汇报的人员,本书更是一本不可多得的...
本书所介绍的重点并不是高深的图表处理技巧,而是各种图表的... 本书的最大特点在于用最常见的操作方式来完成一些看似复杂的图表,总体难度为中等水 平。因此,只要具备一定的Excel 基础知识的人,均可以学会本书内容。
使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js...
Vis.js是一款基于JavaScript的可视化图表库,vis.js不像其他的图表库那样仅仅支持几种常用的数据图表,比如线形图、柱状图、饼图等,Vis.js支持上百种不同类型的可视化图表类型,比如时间线图、网络图、2D图表、3D...
《实战技巧精粹:Excel2010图表实战技巧精粹》通过对Excel Home技术论坛中上百万提问的分析与提炼,汇集了用户在使用Excel图表过程中最常见的需求,通过160多个技巧的演示与讲解,将Excel高手的过人技巧手把手教给...
D3图表示例-线型图表面型图表柱状图表
asp图表--生成各种图表asp图表--生成各种图表asp图表--生成各种图表asp图表--生成各种图表
chartdir_java_做图表工具 java做图表 chartdir破解 很好用,还破解了,可以做各种图表
VBA图表剖析.VBA图表剖析.VBA图表剖析.VBA图表剖析.