`
阅读更多

      希望转载,或引用我blog资源保留作者信息。——算了,显然那也是不大可能的。我前不就在其他blog还发现了和我写的一摸一样的文章,虽然我写的自认为还是比较臭,但是没有人喜欢看到自己花了精力的总结,被人毫不分析,毫不处理,毫不掩饰的改上他的大名。在blogjava也发现过,啥都没有改。就作者名字改了,和写的时间晚点,有些估计是我的有缘人,就晚几个小时——也许还真是和我想的一摸一样了。我也常用别人资源(不过性质没有这么恶劣罢了),所以不废话了,必定分享知识和分享苹果是不一样的。呵呵,发现自己废话还真不少哦。

上手JFreeChart
http://www.blogjava.net/JAVA-HE/archive/2007/04/18/111439.aspx

报表使用经验、技巧大总结(包括JFreechart、JS chart以及自己的使用经验)

http://www.blogjava.net/JAVA-HE/archive/2007/05/08/115813.html

这是我前面写的两篇关于客户端报表的总结,有需要的朋友可以参考参考。下面总结的是自己扩展封装的一个绘制饼图javascript class。

 

  1 /**/ /* ************更多技术文章请访问:http://www.blogjava.net/JAVA-HE****************
  2  *
  3  *    文件名:pie.js V 1.01
  4  *    
  5  *    作  者:何昌敏
  6  *
  7  *    时  间:2007-6
  8  *
  9  *    描  述:绘制饼图
 10  *
 11  *    备  注:
 12  *                1.修改数据转化为像素<1 像素时候,出现的图形走样bug。
 13  *                2.实现换行可设置。
 14  *                3.实现是否将说明图标居右。
 15  *                4.实现阴影绘制可选。
 16  *                5.实现比较严格的参数判断。
 17  *                6.可选择显示百分比的。
 18  *                7.实现了图像清除。
 19  *                8.调整startx starty能实现整体位置调整。
 20  *
 21  *    感  谢:Walter Zorn提供了API ——wz_jsgraphics.js v. 3.01。
 22  *                
 23 *************更多技术文章请访问:http://www.blogjava.net/JAVA-HE*************** */

 24 function  Pie(_div)
 25 {
 26      var  piejg  =   new  jsGraphics(_div);
 27      var  colors  =   new  Array(); 
 28     colors[ 9 =   " #0066FF " ;
 29     colors[ 5 =   " #996633 " ;
 30     colors[ 2 =   " #80bb80 " ;
 31     colors[ 3 =   " #FF0066 " ;
 32     colors[ 4 =   " #9900FF " ;
 33     colors[ 6 =   " #006633 " ;
 34     colors[ 1 =   " #8080FF " ;
 35     colors[ 7 =   " #000000 " ;
 36     colors[ 8 = " #CCFFFF " ;
 37     colors[ 0 =   " #FF8080 " ;
 38     colors[ 10 =   " #066600 " ;
 39     colors[ 11 = " #666666 " ;
 40     
 41      this .start_x  =   0 ;
 42      this .start_y  =   0 ;
 43      this .width =   100 ;
 44      this .height =   100 ;
 45      this .desc_distance  =   80 ;
 46      this .desc_width  =   10 ;
 47      this .desc_height =   10 ;
 48      this .IsShowPercentage  = true ;
 49      this .IsShowShadow  = true ;
 50      this .IsDescRight = true ;
 51      this .nextRow  =   2 ;
 52     
 53      this .drawPie  = function  (y_value,x_value)
 54      {
 55          if ( this .IsShowShadow)
 56          {
 57             piejg.setColor( " #666666 " );
 58             piejg.fillEllipse( this .start_x + 5 this .start_y + 5 this .width,     this .height);
 59       piejg.setColor( " #CCFFFF " );
 60             piejg.fillEllipse( this .start_x,  this .start_y,  this .width,     this .height);
 61         }

 62          var  Percentage  =   new  Array();
 63          var  y_len  =  y_value.length;
 64          var  x_len  =  x_value.length;
 65          var  sum  =   0 ;
 66          var  perspective   =   new  Array();
 67          var  begin_perspective  =   0 ;
 68          var  end_perspective  =   0 ;
 69         
 70          if (y_len  !=  x_len)
 71          {
 72             alert( " X and Y length of inconsistencies, errors parameters. " );
 73              return ;
 74         }

 75          for ( var  i  =   0 ; i < y_len;i ++ )
 76          {
 77             sum += y_value[i];
 78         }

 79          for  ( var  i  =   0 ; i < y_len;i ++ )
 80          {
 81              if (isNaN(y_value[i]))
 82              {
 83                 alert( " y is not a number! " );
 84                  return ;
 85             }

 86             perspective[i]  =  Math.max(Math.round( 360 * y_value[i] / sum), 1 );
 87             Percentage[i]  = Math.round( 100 * y_value[i] / sum);
 88             end_perspective  += perspective[i];
 89              if (i == 0 )
 90              {
 91                 piejg.setColor(colors[i]); 
 92                 piejg.fillArc( this .start_x, this .start_y, this .width, this .height,  0 , end_perspective); 
 93             }

 94              else
 95              {    
 96                 begin_perspective  +=  perspective[i - 1 ];
 97                 piejg.setColor(colors[i]); 
 98                 piejg.fillArc( this .start_x, this .start_y, this .width, this .height, begin_perspective, end_perspective); 
 99             }

100             
101         }

102          var  temp_x  =   0 ;
103          var  temp_y  =   0 ;
104          if ( this .IsDescRight)
105          {
106              for ( var  i  =   0  ;i < x_len;i ++ )
107              {
108                 temp_x  =   this .width + 10 + this .start_y;
109                 temp_y  =   this .start_y + (i - x_len / 2 + 1 / 2 ) * ( this .height / x_len) + this .height / 2 ;
110                  // temp_y = this.start_y+(i+1)*(this.height/x_len);
111                 piejg.setColor(colors[i]);
112                 piejg.fillRect(temp_x,temp_y, this .desc_width, this .desc_height);  
113                  if ( this .IsShowPercentage)
114                  {
115                     piejg.drawString(x_value[i] + " [ " + Percentage[i] + " %] " ,temp_x + this .desc_width,temp_y); 
116                 }
else
117                  {
118                     piejg.drawString(x_value[i],temp_x + this .desc_width,temp_y); 
119                 }
        
120             }

121         }

122          else
123          {
124              for ( var  i  =   0  ;i < x_len;i ++ )
125              {
126                 temp_x  =  i * this .desc_distance + this .start_x;
127                 temp_y  =   this color: #00000
分享到:
评论

相关推荐

    javascript 在客户端绘制图表系列二.doc

    在客户端使用JavaScript绘制图表是一种常见的数据可视化方法,尤其在网页应用中。本篇文章主要讨论的是在客户端绘制柱状图的方法,这是继“javascript 在客户端绘制图表系列一”中关于饼图绘制之后的内容。 柱状图...

    jquery html5 图表用canvas绘制一个动画圆形饼图

    在HTML5中,Canvas元素提供了一种在网页上动态绘制图形的方法,这使得开发者能够创建出丰富的、交互式的图表。jQuery则是一个广泛使用的JavaScript库,它简化了DOM操作,事件处理,动画效果以及Ajax交互。当jQuery与...

    JavaScript绘制图表

    在这个"JavaScript绘制图表"的主题中,我们将深入探讨如何利用JavaScript来创建动态、交互式的图表。 JavaScript图表的绘制通常基于库或框架,例如D3.js、Chart.js、Highcharts等。这些库提供了一系列API和方法,...

    php饼图 jquery饼图

    Highcharts是一个基于JavaScript的图表库,提供多种图表类型,包括饼图,且支持丰富的交互功能。使用Highcharts创建饼图的步骤: 1. 引入库:在HTML文件中引入Highcharts的JS文件。 2. 准备数据:定义饼图各部分的...

    HTML5图表案例,表格+饼图

    在本案例中,我们将探讨如何利用HTML5和JavaScript技术实现一个交互式的图表展示,包括表格和饼图。 首先,HTML5引入了`&lt;canvas&gt;`元素,这是一个画布,可以通过JavaScript来绘制图形,包括饼图。饼图是一种常见的...

    JavaScript 三维报表 饼图

    JavaScript 三维饼图是一种在网页上展示数据的可视化方式,它通过立体的图形来表示不同类别数据的比例关系。这种图表通常由多个扇形区域组成,每个扇形代表一个类别,其大小对应于该类别的数据量占总数据量的比例。...

    自定义双层嵌套饼图实现

    在IT领域,可视化数据是传达复杂信息的有效方式,饼图作为一种直观的数据表示工具,被广泛应用于各种场景。本文将深入探讨如何实现一个自定义的双层嵌套饼图,其中包括内层饼图、外层饼图的展示,以及动态动画和放大...

    fastreport 报表(饼图制作)

    3. **饼图系列**:在图表组件上右键单击,选择“编辑系列”来添加或修改饼图的系列。每个系列对应饼图的一个切片,你可以设置系列的名称、颜色以及它所对应的数据字段。 4. **数据绑定**:将数据集中的字段与饼图...

    raphaelJS制作图表、饼图、柱状图、曲线图

    Raphaël.js 是一个强大的JavaScript库,专用于在Web浏览器中创建矢量图形。它基于SVG(可缩放矢量图形)和VML(矢量标记语言),这两种技术允许在网页上绘制清晰且分辨率独立的图形。Raphaël.js 的主要优势在于它...

    javascript饼图

    JavaScript饼图是一种常用的数据可视化工具,它以圆形图表的形式展示数据比例关系,每个扇区代表一个数据项,扇区的大小对应数据的比例。在网页开发中,饼图常用于直观地展示不同类别或部分在整体中所占的相对大小。...

    asp.net中绘制饼图柱状图

    这些JavaScript库可以通过AJAX技术与服务器端的ASP.NET进行交互,获取数据并在客户端绘制饼图。优点是交互性强,但需要一定的前端开发知识。 3. **Web服务或API**:使用Google Charts或Microsoft Power BI等在线...

    svg绘制饼图

    在这个项目中,我们将使用SVG和JavaScript来实现饼图的动态绘制。 首先,SVG允许我们用代码创建复杂的图形,包括线条、形状、曲线等。每个图形元素都是由一系列的属性定义的,如位置、大小、颜色等。在饼图中,主要...

    jquery html5图表动画圆形饼图.zip

    在IT领域,尤其是在Web开发中,使用动态、交互式的图表是一种常见的数据可视化方式。"jQuery HTML5图表动画圆形饼图.zip"这个压缩包文件显然包含了关于如何使用jQuery、HTML5和CSS来创建带有动画效果的圆形饼图的...

    ASP.net中绘制饼图与棒图

    2. **使用第三方库**:例如,jqPlot是一个基于jQuery的JavaScript图表库,可以在客户端绘制饼图。你需要在HTML页面中引入jqPlot的JS和CSS文件,然后使用JavaScript编写代码来绘制饼图。数据可以来自服务器端的AJAX...

    JavaScript实现 折线图、饼图、柱状图.doc

    在本文中,我们将探讨使用 JavaScript 实现折线图、饼图和柱状图的方法。这些图表是数据可视化的重要工具,广泛应用于各个领域。 一、折线图 折线图是一种常用的图表类型,用于展示数据之间的趋势关系。JavaScript...

    74.(leaflet篇)leaflet饼状图.zip

    在标签中提到了`echarts`,ECharts是一款由百度开发的开源JavaScript图表库,它提供了丰富的图表类型,包括饼图。因此,可能的实现方式是将ECharts图表嵌入到Leaflet的地图上。 实现步骤通常如下: 1. **引入库**...

    绘制饼图并实现动画效果

    总结来说,使用SVG和JavaScript绘制饼图并实现动画效果,主要包括以下几个步骤: 1. 创建SVG容器。 2. 计算每个扇区的弧度。 3. 使用`path`元素和路径命令绘制扇区。 4. 利用`requestAnimationFrame`实现动画效果。 ...

    asp.net中绘制饼图与棒图

    在ASP.NET中,为了实现数据可视化,我们常常需要在网页上绘制各种图表,如饼图和棒图。这些图表能够直观地展示复杂的数据,帮助用户理解信息。本篇将详细介绍如何在ASP.NET环境下利用不同的库和技术来绘制饼图与棒图...

    wxchart微信小程序图表组件柱状图折线图饼图雷达图

    `wxchart` 是一个专为微信小程序设计的图表组件库,它提供了丰富的图表类型,包括柱状图、折线图、饼图以及雷达图等,使得开发者能够轻松地在小程序中实现各种数据可视化功能。下面将详细探讨这些图表组件的特性和...

    JavaScript图表库(雷达图,饼图,折线图,曲线图,柱状图) 基于HTML5 Canvas.zip

    HTML5 Canvas是一个强大的绘图API,它允许开发者在网页上直接进行2D图形绘制,通过JavaScript来操纵像素,创建动态、交互式的图形。这种技术在数据可视化领域中尤其受欢迎,因为它提供了高度自定义和高性能的特性。 ...

Global site tag (gtag.js) - Google Analytics