ASP.NET画柱状图和折线图

摘要:
使用系统;使用系统。收藏;使用系统。组件模型;使用系统。数据使用系统。绘画使用系统。网状物使用System.Web。会话状态;使用System.Web。UI;使用System.Web.UI。Web控件;使用
using System;
ASP.NET画柱状图和折线图第1张
using System.Collections;
ASP.NET画柱状图和折线图第1张
using System.ComponentModel;
ASP.NET画柱状图和折线图第1张
using System.Data;
ASP.NET画柱状图和折线图第1张
using System.Drawing;
ASP.NET画柱状图和折线图第1张
using System.Web;
ASP.NET画柱状图和折线图第1张
using System.Web.SessionState;
ASP.NET画柱状图和折线图第1张
using System.Web.UI;
ASP.NET画柱状图和折线图第1张
using System.Web.UI.WebControls;
ASP.NET画柱状图和折线图第1张
using System.Web.UI.HtmlControls;
ASP.NET画柱状图和折线图第1张
using System.Drawing.Imaging;
ASP.NET画柱状图和折线图第1张
using System.Drawing.Drawing2D;
ASP.NET画柱状图和折线图第1张
ASP.NET画柱状图和折线图第1张
namespace commonu
ASP.NET画柱状图和折线图第14张ASP.NET画柱状图和折线图第15张
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张    
/**//// <summary>
ASP.NET画柱状图和折线图第19张    
/// WebForm2 的摘要说明。
ASP.NET画柱状图和折线图第20张    
/// </summary>

ASP.NET画柱状图和折线图第19张    public class WebForm2 : System.Web.UI.Page
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张    
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张    
ASP.NET画柱状图和折线图第19张        
private void Page_Load(object sender, System.EventArgs e)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张        
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张            
/**//*自写编码*/
ASP.NET画柱状图和折线图第19张            
int ImgWidth=600;        //1.[总宽度]            ***图宽度   
ASP.NET画柱状图和折线图第19张
            int ImgHeight=300;        //2.[总高度]            ***图高度        
ASP.NET画柱状图和折线图第19张
            int ItemNum=1;            //3.[项目数量]            ***图表划分的块            
ASP.NET画柱状图和折线图第19张
            int ChildNum=6;            //4.[块数]                ***大块中划分的子项的数量
ASP.NET画柱状图和折线图第19张
            float ChildRate=0.6f;    //5.[各块总占空间比率]
ASP.NET画柱状图和折线图第19张            
//int ChildSpace=15;        //6.[各块间的间距]
ASP.NET画柱状图和折线图第19张
            int ChartLeft=80;        //7.[图表左边距]        ***图表距图的左边距离
ASP.NET画柱状图和折线图第19张
            int ChartRight=50;        //8.[图表右边距]        ***图表距图的右边距离
ASP.NET画柱状图和折线图第19张
            int ChartTop=50;        //9.[图表顶边距]        ***图表距图顶边距离
ASP.NET画柱状图和折线图第19张
            int ChartBottom=50;        //10.[图表底边距]        ***图表距图底边距离
ASP.NET画柱状图和折线图第19张
            int YMaxValue=5000;        //11.[纵坐标标尺最大值]    ***纵坐标标尺的最大值
ASP.NET画柱状图和折线图第19张
            int YItemNum=10;        //12.[纵坐标标尺段数]    ***纵坐标标尺的段数
ASP.NET画柱状图和折线图第19张
            int YTop=15;            //13.[距纵轴顶端间隔]
ASP.NET画柱状图和折线图第19张
            int YStrStart=35;        //14.[纵坐标标尺文字起始X坐标]
ASP.NET画柱状图和折线图第19张
            int XRight=15;            //15.[距横轴右端间隔]
ASP.NET画柱状图和折线图第19张
            int XStrStart=20;        //16.[横坐标标尺文字起始Y坐标]
ASP.NET画柱状图和折线图第19张            
ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            
//[图表总宽度]=[总宽度]-[图表左边距]-[图表右边距]-[距横轴右端间隔]
ASP.NET画柱状图和折线图第19张
            int chartwidth=ImgWidth-ChartLeft-ChartRight-XRight;
ASP.NET画柱状图和折线图第19张            
//[项目宽度]=[图表总宽度]/[项目数量]
ASP.NET画柱状图和折线图第19张
            int itemwidth=chartwidth/ItemNum;
ASP.NET画柱状图和折线图第19张            
//[各块总占空间比率的实际宽度]=[项目宽度]*[各块总占空间比率]
ASP.NET画柱状图和折线图第19张
            int factwidth=Convert.ToInt32(Math.Floor(itemwidth*ChildRate));
ASP.NET画柱状图和折线图第19张            
//[各块矩形宽度]=[各块总占空间比率的实际宽度]/[块数]
ASP.NET画柱状图和折线图第19张
            int rectanglewidth=factwidth/ChildNum;
ASP.NET画柱状图和折线图第19张            
//[各块间的间距]=([项目宽度]-[各块总占空间比率的实际宽度])/([块数]+1)
ASP.NET画柱状图和折线图第19张
            int childspace=Convert.ToInt32(Math.Floor((itemwidth-factwidth)/(ChildNum+1)));
ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            Graphics objGps;
//建立画板对象
ASP.NET画柱状图和折线图第19张
            Bitmap objBitMap = new Bitmap(ImgWidth,ImgHeight);//建立位图对象
ASP.NET画柱状图和折线图第19张
            objGps = Graphics.FromImage(objBitMap);//根据位图对象建立画板对象
ASP.NET画柱状图和折线图第19张
            objGps.Clear(Color.White);//设置画板对象的背景色
ASP.NET画柱状图和折线图第19张

ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张            
int[] arrValues=ASP.NET画柱状图和折线图第16张{0,0,0,0,0,0};//数据数组
ASP.NET画柱状图和折线图第19张            
//arrValues[0]=500;
ASP.NET画柱状图和折线图第19张
            arrValues[0]=Convert.ToInt32(Math.Floor((ImgHeight-ChartBottom-ChartTop-YTop)*500/YMaxValue));    //处理显示数据,进行图表数值对应
ASP.NET画柱状图和折线图第19张
            arrValues[1]=Convert.ToInt32(Math.Floor((ImgHeight-ChartBottom-ChartTop-YTop)*700/YMaxValue));
ASP.NET画柱状图和折线图第19张            arrValues[
2]=Convert.ToInt32(Math.Floor((ImgHeight-ChartBottom-ChartTop-YTop)*900/YMaxValue));
ASP.NET画柱状图和折线图第19张            arrValues[
3]=Convert.ToInt32(Math.Floor((ImgHeight-ChartBottom-ChartTop-YTop)*1000/YMaxValue));
ASP.NET画柱状图和折线图第19张            arrValues[
4]=Convert.ToInt32(Math.Floor((ImgHeight-ChartBottom-ChartTop-YTop)*1400/YMaxValue));
ASP.NET画柱状图和折线图第19张            arrValues[
5]=Convert.ToInt32(Math.Floor((ImgHeight-ChartBottom-ChartTop-YTop)*2200/YMaxValue));
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张            
string[] arrValueNames=ASP.NET画柱状图和折线图第16张{"0","0","0","0","0","0","0","0","0","0"};//月份
ASP.NET画柱状图和折线图第19张

ASP.NET画柱状图和折线图第19张            arrValueNames[
0= "一月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
1]="二月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
2= "三月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
3]="四月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
4]="五月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
5]="六月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
6= "七月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
7]="八月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
8]="九月";
ASP.NET画柱状图和折线图第19张            arrValueNames[
9]="十月";
ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            
//得出矩形宽度,和画图X轴位置
ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            
//[项目宽度]=[总宽度]/[项目数量]
ASP.NET画柱状图和折线图第19张            
//======[各块总占空间比率]=([各块矩形宽度]+[各块间的间距])/[项目宽度]
ASP.NET画柱状图和折线图第19张            
//[各块总占空间比率的实际宽度]=[项目宽度]*[各块总占空间比率]
ASP.NET画柱状图和折线图第19张            
//[各块矩形宽度]=([各块总占空间比率的实际宽度]-[各块间的间距]*([块数]))/[块数]
ASP.NET画柱状图和折线图第19张            
//[一边空余空间宽度]=([项目宽度]-[各块所占空间比率的总宽度])/2  
ASP.NET画柱状图和折线图第19张

ASP.NET画柱状图和折线图第19张            System.Drawing.Point[] pi
=new Point[arrValues.Length];    //定义折线点的对象数组
ASP.NET画柱状图和折线图第19张
            System.Drawing.Point[] pit=new Point[3];    //定义坐标三角点的对象数组
ASP.NET画柱状图和折线图第19张
            System.Drawing.Pen pe=new Pen(new SolidBrush(GetColor(7)),1f);    //定义画直线的对象
ASP.NET画柱状图和折线图第19张            
//画纵轴
ASP.NET画柱状图和折线图第19张
            objGps.DrawLine(pe,new Point(ChartLeft,ImgHeight-ChartBottom),new Point(ChartLeft,ChartTop));
ASP.NET画柱状图和折线图第19张            
//画纵轴终点箭头
ASP.NET画柱状图和折线图第19张
            pit[0].X=ImgWidth-ChartRight;    //确定三角形三点的位置
ASP.NET画柱状图和折线图第19张
            pit[0].Y=ImgHeight-ChartBottom-4;
ASP.NET画柱状图和折线图第19张            pit[
1].X=ImgWidth-ChartRight;
ASP.NET画柱状图和折线图第19张            pit[
1].Y=ImgHeight-ChartBottom+4;
ASP.NET画柱状图和折线图第19张            pit[
2].X=ImgWidth-ChartRight+10;
ASP.NET画柱状图和折线图第19张            pit[
2].Y=ImgHeight-ChartBottom;
ASP.NET画柱状图和折线图第19张            objGps.FillPolygon(
new SolidBrush(GetColor(7)),pit);
ASP.NET画柱状图和折线图第19张            
//画纵轴标尺和标尺描述
ASP.NET画柱状图和折线图第19张
            for(int i=1;i<=YItemNum;i++)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张            
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张                
//画标尺
ASP.NET画柱状图和折线图第19张
                objGps.DrawLine(pe,new PointF(ChartLeft,ImgHeight-ChartBottom-(ImgHeight-ChartBottom-ChartTop-YTop)/YItemNum*i),new PointF(ChartLeft-5,ImgHeight-ChartBottom-(ImgHeight-ChartBottom-ChartTop-YTop)/YItemNum*i));
ASP.NET画柱状图和折线图第19张                
//画描述
ASP.NET画柱状图和折线图第19张
                objGps.DrawString(arrValueNames[i-1].ToString(),new Font("宋体",10),Brushes.Black,new Point(YStrStart,ImgHeight-ChartBottom-(ImgHeight-ChartBottom-ChartTop-YTop)/YItemNum*i-5));
ASP.NET画柱状图和折线图第20张            }

ASP.NET画柱状图和折线图第19张            
//画横轴
ASP.NET画柱状图和折线图第19张
            objGps.DrawLine(pe,new Point(ChartLeft,ImgHeight-ChartBottom),new Point(ImgWidth-ChartRight,ImgHeight-ChartBottom));
ASP.NET画柱状图和折线图第19张            
//画横轴终点箭头
ASP.NET画柱状图和折线图第19张
            pit[0].X=ChartLeft-4;    //确定三角形三点的位置
ASP.NET画柱状图和折线图第19张
            pit[0].Y=ChartTop;
ASP.NET画柱状图和折线图第19张            pit[
1].X=ChartLeft+4;
ASP.NET画柱状图和折线图第19张            pit[
1].Y=ChartTop;
ASP.NET画柱状图和折线图第19张            pit[
2].X=ChartLeft;
ASP.NET画柱状图和折线图第19张            pit[
2].Y=ChartTop-10;
ASP.NET画柱状图和折线图第19张            objGps.FillPolygon(
new SolidBrush(GetColor(7)),pit);
ASP.NET画柱状图和折线图第19张            
//画横轴标尺和标尺描述
ASP.NET画柱状图和折线图第19张
            for(int i=1;i<=ItemNum;i++)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张            
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张                objGps.DrawLine(pe,
new PointF(ChartLeft+itemwidth*i,ImgHeight-ChartBottom),new PointF(ChartLeft+itemwidth*i,ImgHeight-ChartBottom+5));
ASP.NET画柱状图和折线图第19张                objGps.DrawString(arrValueNames[i
-1].ToString(),new Font("宋体",10),Brushes.Black,new Point(ChartLeft+childspace+itemwidth*(i-1),ImgHeight-ChartBottom+XStrStart));
ASP.NET画柱状图和折线图第20张            }

ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            
for(int j = 0;j<arrValues.Length;j++)//画矩形图和折线图
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张
            ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张                objGps.FillRectangle(
new SolidBrush(GetColor(j)),(j*(childspace+rectanglewidth))+childspace+ChartLeft,ImgHeight-ChartBottom-arrValues[j],rectanglewidth,arrValues[j]);
ASP.NET画柱状图和折线图第19张                objGps.DrawRectangle(Pens.Black,(j
*(childspace+rectanglewidth))+childspace+ChartLeft,ImgHeight-ChartBottom-arrValues[j],rectanglewidth,arrValues[j]);
ASP.NET画柱状图和折线图第19张                pi[j].X
=(j*(childspace+rectanglewidth))+childspace+ChartLeft;
ASP.NET画柱状图和折线图第19张                pi[j].Y
=ImgHeight-ChartBottom-arrValues[j];
ASP.NET画柱状图和折线图第19张                pe.SetLineCap(System.Drawing.Drawing2D.LineCap.RoundAnchor,System.Drawing.Drawing2D.LineCap.RoundAnchor,System.Drawing.Drawing2D.DashCap.Round);
ASP.NET画柱状图和折线图第19张                
if(j>0)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张                
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张                    objGps.DrawLine(pe,pi[j
-1],pi[j]);
ASP.NET画柱状图和折线图第20张                }

ASP.NET画柱状图和折线图第20张            }

ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            objBitMap.Save(Response.OutputStream,ImageFormat.Gif);
//该位图对象以"GIF"格式输出
ASP.NET画柱状图和折线图第20张
        }

ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张
/**//// <param name="itemIndex">系统定义的颜色,有效值0到7,分别为(Blue,Yellow,Red,Orange,Purple,Brown,Pink,Black)</param>
ASP.NET画柱状图和折线图第20张
/// <returns></returns>

ASP.NET画柱状图和折线图第19张        public static Color GetColor(int itemIndex)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张        
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张            Color objColor 
= new Color();
ASP.NET画柱状图和折线图第19张            
switch(itemIndex)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张            
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张                
case 0:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Blue;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
case 1:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Yellow;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
case 2:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Red;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
case 3:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Orange;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
case 4:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Purple;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
case 5:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Brown;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
case 6:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Pink;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第19张                
default:
ASP.NET画柱状图和折线图第19张                    objColor 
= Color.Black;
ASP.NET画柱状图和折线图第19张                    
break;
ASP.NET画柱状图和折线图第20张            }

ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第19张            
return objColor;
ASP.NET画柱状图和折线图第20张        }

ASP.NET画柱状图和折线图第19张
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张
/**//// <param name="red">自定义颜色红色分量值,有效值0到255</param>
ASP.NET画柱状图和折线图第19张
/// <param name="green">自定义颜色绿色分量值,有效值0到255</param>
ASP.NET画柱状图和折线图第19张
/// <param name="blue">自定义颜色蓝色分量值,有效值0到255</param>
ASP.NET画柱状图和折线图第20张
/// <returns></returns>

ASP.NET画柱状图和折线图第19张        public static Color GetColor(int red,int green,int blue)
ASP.NET画柱状图和折线图第17张ASP.NET画柱状图和折线图第18张        
ASP.NET画柱状图和折线图第16张{
ASP.NET画柱状图和折线图第19张            Color objColor 
= new Color();
ASP.NET画柱状图和折线图第19张            objColor 
= Color.FromArgb(red,green,blue);
ASP.NET画柱状图和折线图第19张            
return objColor;
ASP.NET画柱状图和折线图第20张        }

ASP.NET画柱状图和折线图第19张

我做的时候充分把能用变量的地方尽量有变量,
方便有兴趣的朋友把次改为组件,方便以后应用,我还会对此进行更新,做成一个组件。
下面是运行后的图例:
ASP.NET画柱状图和折线图第218张

免责声明:文章转载自《ASP.NET画柱状图和折线图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ArcGIS切片技巧及注意事项三之高级工具应用mongodb学习笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

QT5的QChart使用记录

如果需要在QT中使用QChart类,需要在安装的时候勾选QChart选项,在工程的 .pro 文件里面添加 QT += charts 语句,包含 QChart 头文件就行了。 对于图表的显示,可以先拖出来一个控件,比如 widget、Graphics等控件,将其提升为 QChartView 类用于显示 chart。右键该控件选择提升,输入内容可以以图片中的...

Vue中使用Echarts实现立体柱状图(长方体)

预览: 代码: 页面部分: <template> <div ref="roadnumall"> <div ref="dom"></div> </div> </template> CSS部分: .roadnum-all { 100%; height:...

C# 绘制统计图(柱状图, 折线图, 扇形图)

统计图形种类繁多, 有柱状图, 折线图, 扇形图等等, 而统计图形的绘制方法也有很多, 有Flash制作的统计图形, 有水晶报表生成统计图形, 有专门制图软件制作, 也有编程语言自己制作的;这里我们用就C# 制作三款最经典的统计图: 柱状图, 折线图和扇形图;既然是统计, 当然需要数据, 这里演示的数据存于Sql Server2000中, 三款统计图形都是...

G2 基本使用 折线图 柱状图 饼图 基本配置

G2的基本使用   1.浏览器引入 <!-- 引入在线资源 --><script src="https://gw.alipayobjects.com/os/lib/antv/g2/3.4.10/dist/g2.min.js"></script> 2.通过 npm 安装 npm install @antv/g2 --sav...

柱状图X轴文字显示不全

解决echarts柱状图横轴文字显示不全 在使用echarts图表框架开发的过程中,当柱状图底部X轴文字过长时,将会出现文字显示不全的问题。 解决代码演示: 1 <!-- 为ECharts准备一个具备大小(宽高)的Dom --> 2 <div style="${width}px;height:${height}px"&g...

iphone上如何绘制柱状图(转载,整理)

曾经在cocoachina上看到过绘制的立体的柱状图,效果非常不错,下面是链接, http://www.cocoachina.com/bbs/read.php?tid-9462-toread-1.html NTChartView.h #import <Foundation/Foundation.h> @interface NTChartV...