WebChart生成折线图,柱状图,饼状图

折线图形的数据库设计: 
  id int 
  name varchar(50) 
  dataTimedatetime 
  饼形图和柱状图使用同一个表的数据: 
  id int 
  name varchar(50) 
  shuliang int 

  下面的ChartControl1、ChartControl2、ChartControl3都是从工具箱拖进页面的webChart控件的ID 

  1、折线图代码:(实现的为当年的按月份的趋势) 

  定义颜色: 

  private string[] myColor = new string[] 

  { 

  "Tomato",//西红柿 

  "Black", 

  "Gold", 

  "Blue", 

  "Green", 

  "Orange", 

  "Pink",//粉红 

  "Violet",//紫罗兰 

  "Orchid",//淡紫色 

  "Lime",//亮绿 

  "Tan",//茶色 

  "Red", 

  "Navy"//橘红 

  }; 

  给webChart绑定数据: 

  private void GetLineChart() 

  { 

  //创建折线对象 

  LineChart myLineChart = new LineChart(); 

  myLineChart.Line.Color = Color.FromName(myColor[0]); 

  myLineChart.Fill.Color = Color.FromName(myColor[0]); 

  myLineChart.LineMarker = new DiamondLineMarker(8,Color.FromName(myColor[0]),Col or.FromName(myColor[0])); 

  myLineChart.DataSource = GetData().DefaultView;//GetData()方法见下 

  myLineChart.DataXValueField = "mMonth"; 

  myLineChart.DataYValueField = "count"; 

  myLineChart.DataLabels.Visible = true; 

  myLineChart.Legend = "2011年"; 

  myLineChart.DataBind(); 

  //myLineChart.Data.Add(new ChartPoint("一",float.Parse("20"))); 此注释部分为添加静态数据 

  //myLineChart.Data.Add(new ChartPoint("二",float.Parse("40"))); 

  //myLineChart.Data.Add(new ChartPoint("3", float.Parse("50"))); 

  //myLineChart.Data.Add(new ChartPoint("4", float.Parse("30"))); 

  //this.ChartControl1.YCustomEnd = 60; 

  //this.ChartControl1.YValuesInterval = 10; 

  this.ChartControl1.Charts.Add(myLineChart); 

  this.ChartControl1.RedrawChart(); 

  } 

  private DataTable GetData() 

  { 

  Class1 c = new Class1(); 

  string sql = "select * from(SELECT 1 AS 'mMonth'UNION SELECT 2 AS 'mMonth'UNION SELECT 3 AS 'mMonth'UNION SELECT 4 AS 'mMonth'UNION SELECT 5 AS 'mMonth'UNION SELECT 6 AS 'mMonth'UNION SELECT 7 AS 'mMonth'UNION SELECT 8 AS 'mMonth'UNION SELECT 9 AS 'mMonth' UNION SELECT 10 AS 'mMonth'UNION SELECT 11 AS 'mMonth'UNION SELECT 12 AS 'mMonth') as m left join(select count(dataTime) as [count],month(dataTime) as monthTime from lineChart where year(dataTime)=DATEPART(year, getDate()) group By month(dataTime)) b on m.mMonth = b.monthTime"; 

  //此处的sql语句有点…… SqlCommand cmd = new SqlCommand(sql, c.Conn); DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); DataTable dt = ds.Tables[0]; return dt; } 2、 天梭手表 天梭 柱状图的代码: 

  private void bindchart() 

  { 

  DataTable dt = this.getdt();//getdt()方法见下 

  if (dt != null) 

  { 

  if (dt.Rows.Count > 0) 

  { 

  //遍历DataTable为每条记录天生一个柱状 

  for (int i = 0; i < dt.Rows.Count; i++) 

  { 

  //创建对象 

  ColumnChart mychart = new ColumnChart(); 

  //设置柱子宽度 

  mychart.MaxColumnWidth = 24; 

  //颜色 

  mychart.Fill.Color = Color.FromName(this.myColor[i]); 

  //在柱子上显示数目 

  mychart.DataLabels.Visible = true; 

  //数目的字体 

  mychart.DataLabels.Font = new Font("Verdana", 14); 

  //dt.Rows[i]["name"].ToString() 

  //添加 

  mychart.Data.Add(new ChartPoint("",float.Parse(dt.Rows[i]["shuliang"].T oString()))); 

  //备注 

  mychart.Legend = dt.Rows[i]["name"].ToString(); 

  this.ChartControl2.Charts.Add(mychart); 

  } 

  //辅助设置 

  //背景色 

  ChartControl2.Background.Color = Color.FromArgb(165, 0, 16); 

  ChartControl2.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16); 

  ChartControl2.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16); 

  //内部线条 

  ChartControl2.Border.Color = Color.FromArgb(200, 200, 200); 

  //边框样式 

  ChartControl2.BorderStyle = BorderStyle.None; 

  //y最大值 

  double max = double.Parse(dt.Compute("MAX(shuliang)", "").ToString()); 

  //递增值 

  int intv = 2; 

  //数目小于16的情况 

  if (max < 16) 

  { 

  max = 16; 

  } 

  //大于16的情况 

  else 

  { 

  int intintv = int.Parse(Math.Ceiling(max / 8).ToString()); 

  max += intv; 

  } 

  //设置Y轴终点值 

  //ChartControl2.YCustomEnd = int.Parse(max.ToString()); 

  ChartControl2.YCustomEnd = 50; 

  //y递增值 

  ChartControl2.YValuesInterval = 5; //天生 this.ChartControl2.RedrawChart(); } } } private DataTable getdt() { Class1 c = new Class1(); string sql = "select * from chart"; SqlCommand cmd = new SqlCommand(sql,c.Conn); DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); DataTable dt = ds.Tables[0]; return dt; } 3、饼状图的代码: 

  private void GetPieChart() 

  { 

  PieChart c = new PieChart(); 

  c.DataSource = getdt().DefaultView;//getdt()方法与柱状图为同一个 

  c.DataXValueField = "name"; 

  c.DataYValueField = "shuliang"; 

  c.Shadow.Visible = true; 

  c.DataLabels.ForeColor = System.Drawing.Color.Blue; 

  //c.Colors = new Color[] { Color.Red, Color.Blue, Color.Yellow, Color.Cyan, Color.AntiqueWhite, Color.RosyBrown }; 

  c.DataLabels.Visible = true; 

  ChartControl1.Background.EndPoint = new Point(500, 350); 

  c.Explosion = 1; 

  c.DataBind(); 

  ChartControl3.Charts.Add(c); 

  ChartControl3.RedrawChart(); 

  } 

  private DataTable getdt() 

  { 

  Class1 c = new Class1(); 

  string sql = "select * from chart"; 

  SqlCommand cmd = new SqlCommand(sql,c.Conn); 

  DataSet ds = new DataSet(); 

  SqlDataAdapter da = new SqlDataAdapter(cmd); 

  da.Fill(ds); 

  DataTable dt = ds.Tables[0]; 

  return dt; 

  }

转载自:http://blog.cnfol.com/ed090o/article/47932016.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web Chart Flot - Flot 为 jQuery 提供的javascript代码库. 容易使用,有特色的图表,提供交互功能(能够放大缩小数据区域等)。 Open Flash Chart - Open Flash Chart 是一个 Flash 图表组件,很容易安装,提供以下语言的API: PHP, Perl, Python, Java, Ruby on Rails, and .Net 来控制图表。 ? AmCharts - AmCharts 是一个动画交互Flash图表。支持: Pie Charts, Line Charts, Scatter/Bubble Charts, Bar/Column Charts, 甚至股票图表。 ? Emprise JavaScript Charts - Emprise 是一个100% 纯 JavaScript 图表解决方案,并不需要任何 JavaScript 框架. ? PlotKit - PlotKit 是一个 图表和图像的Javascript 库. PlotKit 和 MochiKit javascript 库一起工作,支持HTML Canvas 和 Adobe SVG 显示 以及本地浏览器支持。尤其文档非常全。 ? Flotr - Flotr 是Prototype 1.6.0.2框架的javascript插件库。 Flotr帮助你在浏览器中创建图表,支持鼠标事件响应,放大缩小,CSS类型支持等。 PHP/SWF Charts - PHP/SWF 是一个简单支持web图表的强大工具,你能使用 PHP 来收集数据,并发送给flash,支持很多图表类型: Line, Column, Stacked column, Floating column, 3D column, Stacked 3D column, Parallel 3D column, Pie, 3D Pie, Bar, Stacked bar, Floating bar, Area, Stacked area, Candlestick, Scatter, Polar, Mixed. ? Visifire - Visifire 是用 Silverlight 做的,是一个开源可视化数据组件,使用Visifire你能创建动画 Silverlight 图表,支持 ASP, ASP.Net, PHP, JSP, ColdFusion, Ruby on Rails 或者 简单 HTML调用. ? FusionCharts - FusionCharts 是一个跨浏览器和跨平台的flash图表组件,能够被 ASP.NET, ASP, PHP, JSP, ColdFusion, Ruby on Rails, 简单 HTML 页面 甚至PPT调用. 几乎所有你知道的语言它都支持。 ? JFreeChart - JFreeChart 是一个开源java图表库,让开发者能够很容易在程序里面显示高质量的图表。 JFreeChart 项目从7年前便开始了,起始于 2000 年1月, 已经有四五万开发者已经使用了JFreeChart。JFreeChart 支持很多种图形文件格式: JPEG, GIF, PDF, EPS and SVG. 这对于java开发者是一个很好的资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值