国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C#實現餅圖與棒圖

2024-07-21 02:26:31
字體:
來源:轉載
供稿:網友

using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;

namespace xcrm.module.report
{
 /// <summary>
 /// draw 的摘要說明。
 /// </summary>
 public class draw : system.web.ui.page
 {
  private void page_load(object sender, system.eventargs e)
  {
   // 在此處放置用戶代碼以初始化頁面
   draw_imgbar();
  }
  //畫棒圖
  void draw_imgbar(){
   //創建一個長度為400,寬帶為400的bitmap實例
   bitmap bmp = new bitmap(400,300);
   graphics g;
   g = graphics.fromimage(bmp);
   g.clear(color.snow);
   string[] sitem = {"很好","好","一般","差"};
   int[] num = {1000,69,90,2000};
   int cnt,i,len,ibarwidth;
   float scale;
   float[] nflt;
   string header;
   header = "";
   cnt =0;
      ibarwidth = 40;
   scale = 1;
   len = num.length;
   //nflt.length = len;
   nflt = new float[len];
   for(i=0;i<len;i++)
   {
    cnt += num[i];
   }
   //flt = cnt /len;
   for(i=0;i<len;i++)
   {
   nflt[i] = 200 * num[i]/cnt;
    //nflt[i] = scale * num[i]/cnt;
   }
           

   header = "調查統計結果一覽圖";
   g.drawstring ( header , new font( "宋體", 12,fontstyle.bold) , brushes.black , new point( 75 , 10 ) ) ;
   point myrec = new point ( 300 , 40 ) ;
   point mydec = new point ( 320 , 40 ) ;

         
   for(i=0;i<len;i++)
   {
    g.drawrectangle ( pens.black , myrec.x , myrec.y , 20 , 10 ) ;
    //繪制小方塊
    g.fillrectangle ( new solidbrush( return_color( i ) ) , myrec.x , myrec.y , 20 , 10 ) ;
    //填充小方塊
    g.drawstring ( " " + sitem[i], new font( "宋體" , 9 ) , brushes.black , mydec ) ;
    //繪制小方塊右邊的文字
    myrec.y += 15 ;
    mydec.y += 15 ;

    g . drawrectangle ( pens.black , ( i * ibarwidth ) + 15 , 290 - (nflt[ i ] * scale ) , 20 , ( nflt[ i ] * scale ) + 5 ) ;
    //繪制bar圖
    g . fillrectangle ( new solidbrush ( return_color( i ) ) , ( i * ibarwidth ) + 15 , 290 - ( nflt[ i ] * scale ) , 20 , ( nflt[ i ] * scale ) + 5 ) ;
    //以指定的色彩填充bar圖
    g . drawstring ( num[ i ].tostring ( ) , new font( "宋體" , 9 ) , brushes.black , ( i * ibarwidth ) + 20 , 275 - (nflt[ i ] * scale ) ) ;
    //顯示bar圖代表的數據

    //s = s + nflt[i];   
   }
   pen p = new pen ( color.black , 1 ) ;
   g . drawrectangle ( p , 1 , 1 , 398 , 298 ) ;
   bmp.save ( response.outputstream , system.drawing.imaging.imageformat.jpeg);
   bmp.dispose();
  }


  //畫餅圖
  void draw_img(){
   bitmap bmp = new bitmap(400,300);
            //創建一個長度為400,寬帶為400的bitmap實例
            graphics g;
   g = graphics.fromimage(bmp);
   g.clear(color.snow);
   string[] sitem = {"很好","好","一般","差"};
   int[] num = {1000,69,90,20};
   int cnt,i,len;
   float s;
   float[] nflt;
   string header;
   header = "";
   cnt =0;
   s = 0;
   len = num.length;
   //nflt.length = len;
   nflt = new float[len];
   for(i=0;i<len;i++){
    cnt += num[i];
   }
   //flt = cnt /len;
   for(i=0;i<len;i++){
  
    nflt[i] = 360 * num[i]/cnt;
   }


   header = "調查統計結果一覽圖";
   g.drawstring ( header , new font( "宋體", 12,fontstyle.bold) , brushes.black , new point( 75 , 10 ) ) ;
   g.drawstring ( "單位:次" , new font ( "宋體" , 9 ) , brushes . black , new point(300 , 25 ) ) ;

   point myrec = new point ( 300 , 40 ) ;
   point mydec = new point ( 320 , 40 ) ;

         
   for(i=0;i<len;i++)
   {
    if(i==len-1){
     //s = 360-s;
     nflt[i] = 360-s;
    }
   
    g.drawrectangle ( pens.black , myrec.x , myrec.y , 20 , 10 ) ;
    //繪制小方塊
    g.fillrectangle ( new solidbrush( return_color( i ) ) , myrec.x , myrec.y , 20 , 10 ) ;
    //填充小方塊
    g.drawstring ( " " + sitem[i] + " " + num[i], new font( "宋體" , 9 ) , brushes.black , mydec ) ;
    //繪制小方塊右邊的文字
    myrec.y += 15 ;
    mydec.y += 15 ;

    g.fillpie( new solidbrush (return_color(i)) , 50 , 50 , 200 , 200 , s , nflt[i] ) ;
    g.drawpie( pens.black , 50 , 50 , 200 , 200 , s , nflt[i]);
    s = s + nflt[i];   
   }
   pen p = new pen ( color.black , 1 ) ;
   g . drawrectangle ( p , 1 , 1 , 398 , 298 ) ;
             bmp.save ( response.outputstream , system.drawing.imaging.imageformat.jpeg);
  }
  public color return_color(int i){
   switch(i){
    case 0:
     return color.red;
     //break;
    case 1:
     return color.blue;
     //break;
    case 2:
     return color.yellow;
    case 3:
     return color.green;
     //break;
    case 4:
     return color.pink;
     //break;
    case 5:
     return color.plum;
     //break;
    case 6:
     return color.gray;
     //break;
    case 7:
     return color.salmon;
     //break;
    case 8:
     return color.rosybrown;
     //break;
    case 9:
     return color.teal;
     //break;
    case 10:
     return color.orange;
     //break;
    case 11:
     return color.thistle;
     //break;
    case 12:
     return color.maroon;
     //break;
    default:
     return color.whitesmoke;
     //break;

   }
  }
  #region web 窗體設計器生成的代碼
  override protected void oninit(eventargs e)
  {
   //
   // codegen: 該調用是 asp.net web 窗體設計器所必需的。
   //
   initializecomponent();
   base.oninit(e);
  }
 
  /// <summary>
  /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內容。
  /// </summary>
  private void initializecomponent()
  {   
   this.load += new system.eventhandler(this.page_load);
  }
  #endregion
 }
}


 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长治县| 新巴尔虎右旗| 奉新县| 田阳县| 宁海县| 西贡区| 葫芦岛市| 依兰县| 博乐市| 福清市| 楚雄市| 泗洪县| 保康县| 新竹市| 绍兴县| 福建省| 哈巴河县| 宝鸡市| 吕梁市| 南召县| 新河县| 尼玛县| 卓尼县| 唐河县| 阿克| 咸宁市| 财经| 东港市| 田东县| 泸州市| 望城县| 军事| 武城县| 什邡市| 乌兰察布市| 鹤岗市| 义马市| 通海县| 冀州市| 常山县| 曲周县|