<%@ 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 图表 c#图表 chart 统计图(c#版含实例)"这个主题,主要涵盖了如何在ASP.NET应用中使用C#语言创建和操作图表,特别是统计图。 统计图是一种图形表示,它能够清晰地展示数据的分布、趋势和关系。在ASP.NET...
【ASP.Net实现SQL动态绑定Echarts图表Demo完整源码】是一个示例项目,它演示了如何在ASP.Net环境中结合Echarts图表库、C#、SQL和JSON技术来动态展示数据库中的数据。该项目的核心目标是利用后端服务器处理程序获取...
在我的上一篇文章《在ASP.NET实现数据图表》中已经介绍了在浏览器看到的图表,一般都是图片文件。那么在ASP.NET中是否也可以生成这些图表?答案是肯定的,因为在ASP.NET中拥有了一个新功能--绘图功能,通过此功能就...
总结,Asp和Asp.net的Chart图表控件是一个强大且灵活的工具,它简化了Web应用程序中的数据可视化过程。通过学习和实践,开发者可以轻松地创建出专业级别的图表,提升应用程序的用户体验和功能深度。
在ASP.NET中,生成图表是一项常用的功能,它可以帮助开发者以可视化的方式展示数据,如统计数据、趋势分析或者复杂的业务指标。图表的生成对于数据分析和决策支持至关重要,因为它们能够使用户快速理解和消化大量...
在这个主题中,“asp.net与统计图表”着重讨论了如何在ASP.NET环境中创建和使用统计图表来展示数据。统计图表是数据可视化的重要手段,它们可以帮助用户快速理解大量复杂信息,常用于报表和数据分析。 首先,我们要...
本主题将深入探讨如何在ASP.NET环境下绘制数据图表,主要聚焦于两种常见方法:利用GDI+图形库和使用Microsoft Office Web Components (OWC)。 首先,我们来看GDI+(Generic Device Interface Plus)。GDI+是.NET ...
ASP.NET的图表控件是微软开发的Web应用程序中用于数据可视化的重要工具,它允许开发者创建交互式的、丰富的图表,以直观地展示复杂的数据。在标题和描述中提及的"柱状图"和"饼图"是两种最常见的图表类型,它们在数据...
在"ASP.NET与Echarts实现前后端数据的交互"这个主题中,核心是利用ASP.NET后端处理数据,并通过Echarts前端展示。具体步骤如下: 1. **后端数据处理**:在ASP.NET中,你可以使用ADO.NET或Entity Framework等库来...
在这个项目中,开发者使用ASP.NET技术来实现从SQL数据库中获取数据,并通过ECharts这个强大的JavaScript数据可视化库来展示这些数据。ECharts是百度开发的一个轻量级、高性能的图表库,支持丰富的图表类型,如柱状图...
ASP.NET图表控件是.NET Framework下用于创建动态、交互式数据可视化的一种工具。它允许开发者在Web应用程序中生成各种图表,如柱状图、折线图、饼图、散点图等,以便于数据的展示和分析。这些控件通常包含在ASP.NET...
在本场景中,开发者使用ASP.NET来实现与SQL数据库的交互,并利用ECharts这个JavaScript数据可视化库来展示数据图表。ECharts是由百度开发的一个开源项目,它提供了丰富的图表类型、精美的图表效果以及易于上手的API...
这个压缩包"ASP.NET导出数据到Excel.rar"很可能包含了实现这一功能的代码示例或教程。 在ASP.NET中,导出数据到Excel主要涉及以下知识点: 1. **数据源**:首先,你需要一个数据源,可以是数据库(如SQL Server、...
在ASP.NET中,开发者经常需要展示数据,而统计图表是数据可视化的重要手段。OWC(Office Web Components)是微软提供的一种技术,允许在Web应用中嵌入类似于Excel、Word或PowerPoint的组件,其中就包括了用于绘制...
在ASP.NET中,可以通过DataSource控件(如SqlDataSource或ObjectDataSource)来实现这个目标,它们负责处理与数据源的交互,获取所需的数据。 接着,我们需要设计页面布局。在页面设计阶段,数据模板控件被用来定义...
在ASP.NET中实现报表功能,可以借助多种技术和库来创建各种类型的图表,如条形图、饼图、折线图等,以满足不同的数据展示需求。 首先,我们需要了解ASP.NET中的基本概念。ASP.NET页面生命周期包括初始化、加载、...
ASP.NET图表制作是一种在Web应用中创建数据可视化的方法,它能够帮助开发者生成各种类型的图表,如柱状图、饼图、线形图、散点图等,以直观地展示复杂的数据。在描述中提到的“非常好用的图表制作”,表明这个解决...
Chartlet是一个免费的ASP.NET使用的图表控件,它让你可以用最少的代码创造出非常漂亮的统计图表,我们的宗旨是让你的使用越简单越好,现在你只需要设置一个属性,绑定一个数据源 就可以轻松创建一个非常漂亮的图表!...
ASP.NET MVC中图表控件的使用方法 本文介绍了如何在ASP.NET MVC中使用图表控件,以便在Web应用程序中显示丰富的图表信息。该文章将指导读者如何使用Microsoft图表控件在ASP.NET MVC中创建丰富的图表,包括柱形图、...