ASP.NET实现数据图表c

Asp.Net(C#)中如何画图表(饼图、折线、柱状图) <br />     我们经常在项目中遇到,许多的数据为了真观的体现给用户,不得不引和饼图,趋势图,等等柱状图来开形象的来呈现数据,如果在不使用第三方控件的情况下,我们都知道路在winform程序中是非常容易实现的,如是webform的实现就有点麻烦。本程序是在webform上放Image控件,加上.ashx一般处理文件实现的,原理为将Image的rsc属性转到xxxxx.ashx文件处,xxxxx.ashx文件反加一张已经画好的图片,在调用xxxxx.ashx文件时可以传递参数,如用户信息,根据用户ID生 阅读详情
三。在ASP.NET中实现数据图表的完整源代码和运行界面:

    在掌握了产生图片,在给图片上色、在图片上输出字符、和画线等基本操作过以后,充分的利用各种基本操作,就可以得的在ASP.NET中实现数据图表的完整程序,下图是运行界面:

    图05:在ASP.NET中实现数据图表的运行界面

    下面是在ASP.NET中实现数据图表的完整代码(chart1.aspx),如下:

<%@ Import Namespace = "System" %>
<%@ Import Namespace = "System.Drawing" %>
<%@ Import Namespace = "System.Drawing.Drawing2D" %>
<%@ Import Namespace = "System.Drawing.Imaging" %>
<script language = "C#" runat = "server" >

class LineChart
{
public Bitmap b ;
public string Title = "在ASP.NET中实现数据图表" ;
public ArrayList chartValues = new ArrayList ( ) ;
public float Xorigin = 0 , Yorigin = 0 ;
public float ScaleX , ScaleY ;
public float Xdivs = 2 , Ydivs = 2 ;

private int Width , Height ;
private Graphics g ;
private Page p ;

struct datapoint {
public float x ;
public float y ;
public bool valid ;
}

//初始化
public LineChart ( int myWidth , int myHeight , Page myPage ) {
Width = myWidth ; Height = myHeight ;
ScaleX = myWidth ; ScaleY = myHeight ;
b = new Bitmap ( myWidth , myHeight ) ;
g = Graphics . FromImage ( b ) ;
p = myPage ;
}

public void AddValue ( int x , int y ) {
datapoint myPoint ;
myPoint . x = x ;
myPoint . y = y ;
myPoint . valid = true ;
chartValues . Add ( myPoint ) ;
}

public void Draw ( ) {
int i ;
float x , y , x0 , y0 ;
string myLabel ;
Pen blackPen = new Pen ( Color . Blue , 2 ) ;
Brush blackBrush = new SolidBrush ( Color . Black ) ;
Font axesFont = new Font ( "arial" , 10 ) ;

//首先要创建图片的大小
p . Response . ContentType = "image/jpeg" ;
g . FillRectangle ( new SolidBrush ( Color . LightGreen ) , 0 , 0 , Width , Height ) ;
int ChartInset = 50 ;
int ChartWidth = Width - ( 2 * ChartInset ) ;
int ChartHeight = Height - ( 2 * ChartInset ) ;
g . DrawRectangle ( new Pen ( Color . Black , 1 ) , ChartInset , ChartInset , ChartWidth , ChartHeight ) ;
//写出图片上面的图片内容文字
g . DrawString ( Title , new Font ( "arial" , 14 ) , blackBrush , Width / 3 , 10 ) ;
//沿X坐标写入X标签
for ( i = 0 ; i <= Xdivs ; i++ ) {
x = ChartInset + ( i * ChartWidth ) / Xdivs ;
y = ChartHeight + ChartInset ;
myLabel = ( Xorigin + ( ScaleX * i / Xdivs ) ) . ToString ( ) ;
g . DrawString ( myLabel , axesFont , blackBrush , x - 4 , y + 10 ) ;
g . DrawLine ( blackPen , x , y + 2 , x , y - 2 ) ;
}
//沿Y坐标写入Y标签
for ( i = 0 ; i <= Ydivs ; i++ )
{
x = ChartInset ;
y = ChartHeight + ChartInset - ( i * ChartHeight / Ydivs ) ;
myLabel = ( Yorigin + ( ScaleY * i / Ydivs ) ) . ToString ( ) ;
g . DrawString ( myLabel , axesFont , blackBrush , 5 , y - 6 ) ;
g . DrawLine ( blackPen , x + 2 , y , x - 2 , y ) ;
}
g . RotateTransform ( 180 ) ;
g . TranslateTransform ( 0 , - Height ) ;
g . TranslateTransform ( - ChartInset , ChartInset ) ;
g . ScaleTransform ( - 1 , 1 ) ;

//画出图表中的数据
datapoint prevPoint = new datapoint ( ) ;
prevPoint . valid = false ;
foreach ( datapoint myPoint in chartValues ) {
if ( prevPoint . valid == true ) {
x0 = ChartWidth * ( prevPoint . x - Xorigin ) / ScaleX ;
y0 = ChartHeight * ( prevPoint . y - Yorigin ) / ScaleY ;
x = ChartWidth * ( myPoint . x - Xorigin ) / ScaleX ;
y = ChartHeight * ( myPoint . y - Yorigin ) / ScaleY ;
g . DrawLine ( blackPen , x0 , y0 , x , y ) ;
g . FillEllipse ( blackBrush , x0 - 2 , y0 - 2 , 4 , 4 ) ;
g . FillEllipse ( blackBrush , x - 2 , y - 2 , 4 , 4 ) ;
}
prevPoint = myPoint ;
}

//最后以图片形式来浏览
b . Save ( p . Response . OutputStream , ImageFormat . Jpeg ) ;
}

~LineChart ( ) {
g . Dispose ( ) ;
b . Dispose ( ) ;
}
}
void Page_Load ( Object sender , EventArgs e )
{
LineChart c = new LineChart ( 640 , 480 , Page ) ;
c . Title = " 在ASP.NET中实现数据图表" ;
c . Xorigin = 0 ; c . ScaleX = 500 ; c . Xdivs = 5 ;
c . Yorigin = 0 ; c . ScaleY = 1000 ; c . Ydivs = 5 ;
c . AddValue ( 0 , 150 ) ;
c . AddValue ( 50 , 50 ) ;
c . AddValue ( 100 , 700 ) ;
c . AddValue ( 200 , 150 ) ;
c . AddValue ( 300 , 450 ) ;
c . AddValue ( 400 , 75 ) ;
c . AddValue ( 450 , 450 ) ;
c . AddValue ( 500 , 250 ) ;
c . Draw ( ) ;
}
</script >

    四。 总结:

    实现图表始终是互联网编程的一个难点,本文介绍了在ASP.NET页面中如何实现数据图表,在没有什么好的组件可以利用的前提下,利用。Net FrameWork SDK GDI+中提供的各种用以操作图形的方法,这样的过程虽然有点烦杂,但对实现复杂的图表是非常有用的。希望本文不仅能够帮助读者解决在互联网上的图表问题,也能够对读者的针对GDI+也有所了解。

Win2000蓝屏STOP故障现象解析 现在使用Win2000的朋友越来越多了(小遥:我一辈子死守Win ME!),大家都是冲着Win2000比Win98稳定的份上去使用这个多媒体和游戏性能都不怎么样的操作系统的。不过“是微软的就逃脱不了死机”,Win2000运行时间长了,也难免出现系统崩溃和死机了(小遥唱道:“还是觉得WinME好……”)。一般Win2000死机的时候,就是显示器突然蓝屏(微软一贯的恐吓作风),接着就出现了STOP故障 阅读详情

相关推荐

如何在ASP.NET网络应用实现数据可视化图表

TeeChart for .NET是优秀的 4.0 WinForm 图表控件,官方独家授权汉化,集功能全面、性能稳定版、优惠等优势。NET 的 TeeChart for .NET 中文承诺让您在使用和学习上没有语言障碍,最少可以节省 30% 的开发时间。 点击立即下载最新版TeeChart for .NET WebForms TeeChart通过WebChart TeeChart控件为WebForms集成。WebChart可以在标准TeeChart的工具箱中找到。网络安装。 工具箱中的WebChart图标

RoffeyYang的博客 2098

asp.net 图表 c#图表 chart 统计图(c#版含实例)

asp.net c# 统计图 GoogleChartSharp 含实例

ASP.NET图表生成技术详解

ASP.NET为开发者提供了强大的图表生成能力,使得在Web应用程序中展示数据变得既直观又高效。开发者可以根据需求从简单的内置图表控件开始,到集成复杂的第三方图表库,甚至自定义图表样式和交互功能。本章将简要介绍图表生成的基本概念,为后续章节深入探讨各种技术实现与优化策略打下基础。我们将从服务器端控件的图表生成开始,逐步扩展到前端技术的结合使用,最后讨论如何通过第三方库和优化策略提升图表的功能性和用户体验。

weixin_42589700的博客 1148

asp.net图表制作

非常好用的图表制作 ,可以满足你的需求,很实用

asp.net微软图表控件MsChart

前段时间,开发项目时,由于需要,需要将一些数据统计,并以图表形式显示。由于是asp.net,所以就找到了MsChart图表控件,还是挺方便实用的,分享一下。 MsChart控件的主要组成如图所示 工具栏中找到“Chart”控件,将其拖进前台中 一旦将Chart控件拖放至前台,强大的IDE帮助你完成了一些事情 并引用了System.Web.DataVisualization动态库,而且还在网站配置文件Web.config中添加了 其中在配置文件中添加的...

ba_wang_mao的专栏 1083

ASP.NET实现数据图表

作者:马金虎 来自:yesky 在ASP中插入图表,常用的方法是使用MSChart控件。那么在ASP.NET是否也是这样呢?答案是不可以的。  我们知道ASP.NET是一种编译语言,当客户端第一次调用ASP.NET页面的时候,其实是经过了一种比较复杂的编译过程,编译生产MSIL文件,存储到本地机,MSIL文件其实是一个中间语言的文件,然后此文件又通过JIT(Just in time)...

aome1470的博客 519

ASP.NET+Echarts绘制图表

首先去百度搜索Echarts去下载图表实例,或者直接点击链接:Echarts图表实例下载。其中可以自定义下载,也可以下载全部,根据个人需求进行实例的下载即可! ...

weixin_44146294的博客 5767

asp.net web +三层架构 实现echarts图表

asp.net web +三层架构 实现echarts图表

qq_56281383的博客 360

在Win2000上彻底卸载Oracle

软件环境:     1、Windows 2000+ORACLE    2、ORACLE安装路径为:C:/ORACLE实现方法:     1、 开始->设置->控制面板->管理工具->服务停止所有Oracle服务。    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer卸装所有Oracle

JustDoIT_V2的专栏 643

win2000下卸载oracle。

1、Windows 2000+ORACLE 8.1.7 2、ORACLE安装路径为:C:/ORACLE 实现方法: 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Un

638

怎样在Win2000 Server上彻底卸载Oracle

软件环境: 1、Windows 2000+ORACLE 8.1.7 2、ORACLE安装路径为:C:/ORACLE 实现方法: 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle

DJ(Delphi/JAVA)_fans的专栏 1130

WIN2008SERVER下的SQL2000问题

在win2008server下装SQL2000已经不是第1次了,以前装的都可以正常运行。 最近浙江一客户的服务器上,装的是WIN2008SERVER R2,SQL也是2000,运行了近一个月,没问题。今天我想在SQL 上加个表,无耐加不了,提示什么MSDT70.DLL有问题。 百度了下,有的说WIN2008SERVER不兼容SQL2000的,这当然是扯淡。还有其它扯谈的解决方法,测试了下也不行

CJHLPLFX的专栏 3988

ASP.NET 统计图表控件小结

近来客户需要将前段时间开发的统计信息用图表展示出来,还要多个图表类型,例如:柱状图、饼图、曲线图、三维图等等。在网上google了一下,发现了三个(也许更多)可以使用的控件。下面我们一起看看这三个控件。

asp代码实现生成图表ASP.NET

ASP代码中包含生成excel数据表、生成饼状图表、生成折线图表、生成柱状图表、生成混合图表、通过代码生成图表等代码,下载解压后可直接打开

asp.net画饼图、柱状图(ECharts)

推荐一个优秀画图网站https://echarts.baidu.com/echarts2/doc/example.html?qq-pf-to=pcqq.c2c (饼图)asp.net前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %&gt...

qq_42453161的博客 2374

ASP.NET中实时图表实现

在对大批量的数据进行分析比较时,最常用也是最直观明了的表现方法莫过于绘制趋势图表。一般情况下,我们利用EXCEL制作各种类型的趋势图表,但它们都 是基于静态数据的,即数据是事先整理好的而不 是动态生成的。如果在网上发布,只能将绘制好的图表以静态GIF图像发布,这无法从根本上满足不同用户对不同数据的需求。ASP擅长服务器端的Web编程,操作后台数据库更是它的强项。但是用ASP制作实时数据图表

Andrew Wang的专栏 1572

MVC3-RAZOR尝鲜之漂亮的chart图表

目录 1 创建一个Chart 2 添加标题 3 添加数据源 3.1 反复调用AddSeries可以添加多个 3.2 重复绑定 3.3 使用xml作为数据源 4 数据绑定 5 添加图注 6 保存数据 7 图表与缓存 8 保存到文件 9 其他   1创建一个Chart public Chart( int w...

weixin_33840661的博客 328

asp.net 图表

感谢csdn深南大道,文章转自http://blog.csdn.net/smartsmile2012/article/details/17356673 前台代码 <div> <asp:Chart ID="Chart1" runat=server> <Series> <asp:Series Name="Se...

weixin_30629653的博客 126
上一篇: ASP.NET实现数据图表b
下一篇: k线图表
azhou88
博客等级 码龄23年 3粉丝 23原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值