Web页面中柱状统计图

2024-02-11 22:08
文章标签 web 页面 统计图 柱状

本文主要是介绍Web页面中柱状统计图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Web页面中柱状统计图

//部分代码参考了http://www.yesky.com/20030324/1658705_2.shtml

//Page_Load事件如果改成从数据库中获取数据,就能根据数据库中的数据进行绘图了

public class bitmappicture : System.Web.UI.Page
 {
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面

   //标题

  string title="年度销售业绩统计";
  //数据数组

  float []Arr={3,5,6,11,33,16,10,8,21,19,11,20};   

   //string []Arr1={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};

  //类别数组

  string ARR="一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月";

  string []Arr1=ARR.Split(',');

  barpicture(title,Arr,Arr1);  //调用绘图函数 
  }

 

  //函数中的三参数分别为:标题,数据数组,类别数组
  private void barpicture(string title,float []Arr,string []Arr1)
  {
   //显示屏幕分辨率
   int ScreenWidth=800;
   int ScreenHeight=600;
   int XX=100;//Y轴竖直位置 直线y=XX
   int YY=ScreenHeight-XX;//X轴水平位置 直线x=YY
   int XD=50;//X轴步距
   int YD=10;//Y轴步距
   int WW=25;//柱形宽度
   int KD=YD;//Y轴上的最小刻度值,为精确标刻必须同Y轴步距相关
   

  //创建一个宽度为ScreenWidth,高度为ScreenHeight的Bitmap实例

   Bitmap bm = new Bitmap(ScreenWidth,ScreenHeight);

  //由此Bitmap实例创建Graphic实例  

   Graphics g = Graphics.FromImage(bm);

  g.Clear(Color.Snow);

   g.DrawString(title,new Font("宋体",20),Brushes.Blue,ScreenWidth/2-80,80);//绘制标题
   
   //绘制坐标
   Pen p1=new Pen(Brushes.Black,3);//定义绘制坐标的画笔
   g.DrawLine(p1,new Point(XX,YY),new Point(ScreenWidth-XX,YY));//绘制X轴
   g.DrawLine(p1,new Point(XX,XX),new Point(XX,YY));//绘制Y轴
   //绘制Y轴上的刻度
   for(int j=0;j<(YY-XX)/KD;j++)
   {
    if(j%3==0) //避免Y轴上刻度太密,所以每3个标一个刻度
    {
     g.DrawLine(p1,new Point(XX,YY-j*KD),new Point(XX+10,YY-j*KD));//刻度短划线
     g.DrawString(j.ToString(),new Font("Arial",15,FontStyle.Regular),Brushes.Black,XX-30,YY-10-j*KD);

   //刻度值
    }
   }
   //绘制X轴上的标识和柱形所表示的数据
   for(int i=0;i<Arr.Length;i++)
   {    
    g.DrawRectangle(new Pen( GetColor(i)),XX+20+i*XD,YY-Arr[i]*YD,WW,Arr[i]*YD); //绘制柱形 
    g.FillRectangle(new SolidBrush( GetColor(i)),XX+20+i*XD,YY-Arr[i]*YD,WW,Arr[i]*YD); //用颜色填充柱形
    g.DrawString(Arr[i].ToString(),new Font("Arial",20),Brushes.Black,XX+20+i*XD,YY-Arr[i]*YD-40);//标识数据
    g.DrawString(Arr1[i],new Font("Arial",15),Brushes.Black,XX+5+i*XD,YY+30);//标识每个柱状对应的月份
   }

   Pen p=new Pen(Brushes.Black,3);//绘制边框的画笔
   g.DrawRectangle(p,20,20,ScreenWidth-40,ScreenHeight-40); //绘制边框
   bm.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);

  }

 

  //颜色函数
  private Color GetColor ( int itemIndex )
  {
    Color MyColor ;
    int i = itemIndex ;
    switch ( i )
    {
     case 0 :
      MyColor = Color.Silver ;
      return MyColor ;
     case 1 :
      MyColor = Color.Red ;
      return MyColor ;
     case 2 :
      MyColor = Color.Yellow ;
      return MyColor ;
     case 3 :
      MyColor = Color.Peru ;
      return MyColor ;
     case 4 :
      MyColor = Color.Orange ;
      return MyColor ;
     case 5 :
      MyColor = Color.Coral ;
      return MyColor ;
     case 6:
      MyColor = Color.Gray ;
      return MyColor ;
     case 7:
      MyColor = Color.Maroon ;
      return MyColor ;
     case 8:
      MyColor = Color.SeaGreen ;
      return MyColor ;
     case 9:
      MyColor = Color.Teal ;
      return MyColor ;
     case 10:
      MyColor = Color.RoyalBlue ;
      return MyColor ;
     case 11:
      MyColor = Color.BurlyWood ;
      return MyColor ;
     case 12:
      MyColor = Color.Chartreuse ;
      return MyColor ;
     default:
      MyColor = Color.Green ;
      return MyColor ;
    }
  }


  #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
 }

原贴:http://lcszndx.bokee.com/viewdiary.11080075.html 作者:

相关贴子:

http://www.yesky.com/20030324/1658705_2.shtml

http://www.yesky.com/20020627/1617851.shtml



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1046125

 

这篇关于Web页面中柱状统计图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/700912

相关文章

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

构建高性能WEB之HTTP首部优化

0x00 前言 在讨论浏览器优化之前,首先我们先分析下从客户端发起一个HTTP请求到用户接收到响应之间,都发生了什么?知己知彼,才能百战不殆。这也是作为一个WEB开发者,为什么一定要深入学习TCP/IP等网络知识。 0x01 到底发生什么了? 当用户发起一个HTTP请求时,首先客户端将与服务端之间建立TCP连接,成功建立连接后,服务端将对请求进行处理,并对客户端做出响应,响应内容一般包括响应

(javaweb)mysql---DDL

一.数据模型,数据库操作 1.二维表:有行有列 2. 3.客户端连接数据库,发送sql语句给DBMS(数据库管理系统),DBMS创建--以文件夹显示 二.表结构操作--创建 database和schema含义一样。 这样就显示出了之前的内容。