C# chart控件绘制曲线

简介:

在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图、柱状图什么的了。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  System.Windows.Forms;
using  System.Windows.Forms.DataVisualization.Charting;
using  System.Drawing;
  
namespace  DrawGraph
{
   /// <summary>
   /// 绘制曲线类
   /// </summary>
   public  static  class  DrawClass
  {
    #region 绘制曲线函数
     /// <summary>
     /// 绘制曲线函数
        /// </summary>
          /// <param name="listX">X值集合</param>
          /// <param name="listY">Y值集合</param>
          /// <param name="chart">Chart控件</param>
          public  static  void  DrawSpline(List< int > listX, List< double > listY, Chart chart)
          {
              try
              {
                  //X、Y值成员
                  chart.Series[0].Points.DataBindXY(listX, listY);
                  chart.Series[0].Points.DataBindY(listY);
 
                  //点颜色
                  chart.Series[0].MarkerColor = Color.Green;
                  //图表类型  设置为样条图曲线
                  chart.Series[0].ChartType = SeriesChartType.Spline;
                  //设置点的大小
                  chart.Series[0].MarkerSize = 5;
                  //设置曲线的颜色
                  chart.Series[0].Color = Color.Orange;
                  //设置曲线宽度
                  chart.Series[0].BorderWidth = 2;
                  //chart.Series[0].CustomProperties = "PointWidth=4";
                  //设置是否显示坐标标注
                  chart.Series[0].IsValueShownAsLabel =  false ;
 
                  //设置游标
                  chart.ChartAreas[0].CursorX.IsUserEnabled =  true ;
                  chart.ChartAreas[0].CursorX.AutoScroll =  true ;
                  chart.ChartAreas[0].CursorX.IsUserSelectionEnabled =  true ;
                  //设置X轴是否可以缩放
                  chart.ChartAreas[0].AxisX.ScaleView.Zoomable =  true ;
                  //将滚动条放到图表外
                  chart.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside =  false ;
                  // 设置滚动条的大小
                  chart.ChartAreas[0].AxisX.ScrollBar.Size = 15;
                  // 设置滚动条的按钮的风格,下面代码是将所有滚动条上的按钮都显示出来
                  chart.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.All;
                  chart.ChartAreas[0].AxisX.ScrollBar.ButtonColor = Color.SkyBlue;
                  // 设置自动放大与缩小的最小量
                  chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSize =  double .NaN;
                  chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1;
                  //设置刻度间隔
                  chart.ChartAreas[0].AxisX.Interval = 10;
                  //将X轴上格网取消
                  chart.ChartAreas[0].AxisX.MajorGrid.Enabled =  false ;
                  //X轴、Y轴标题
                  chart.ChartAreas[0].AxisX.Title =  "环号" ;
                  chart.ChartAreas[0].AxisY.Title =  "直径" ;
                  //设置Y轴范围  可以根据实际情况重新修改
                  double  max = listY[0];
                  double  min = listY[0];
                  foreach  ( var  yValue  in  listY)
                  {
                      if  (max < yValue)
                      {
                          max = yValue;
                      }
                      if  (min > yValue)
                      {
                          min = yValue;
                      }
                  }
                  chart.ChartAreas[0].AxisY.Maximum = max;
                  chart.ChartAreas[0].AxisY.Minimum = min;
                  chart.ChartAreas[0].AxisY.Interval = (max - min) / 10;
                  //绑定数据源
                  chart.DataBind();
              }
              catch  (Exception exc)
              {
                  MessageBox.Show(exc.ToString());
              }
          }
          #endregion
 
          #region 鼠标点击,通过环号显示游标,并缩放到响应位置
          /// <summary>
          /// 鼠标点击,通过环号显示游标,并缩放到响应位置函数
          /// </summary>
          /// <param name="ringNum">环号</param>
          /// <param name="chart">Chart控件</param>
          public  static  void  ShowCurByClick( int  ringNum, Chart chart)
          {
              //设置游标位置
              chart.ChartAreas[0].CursorX.Position = ringNum;
              //设置视图缩放
              chart.ChartAreas[0].AxisX.ScaleView.Zoom(ringNum - 1, ringNum + 2);
              //改变曲线线宽
              chart.Series[0].BorderWidth = 3;
              //改变X轴刻度间隔
              chart.ChartAreas[0].AxisX.Interval = 1;
          }
          #endregion
     }
}

 

参考文章
1. 使用.net的Chart控件绘制曲线图

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5862529.html,如需转载请自行联系原作者



相关文章
|
C# 数据库 开发者
44.c#:combobox控件
44.c#:combobox控件
288 1
|
C# 数据库
40.c#:TreeView 控件
40.c#:TreeView 控件
176 1
|
SQL 开发框架 .NET
C#一分钟浅谈:数据绑定与数据源控件
在Web开发中,数据绑定和数据源控件是实现动态网页的关键技术。本文从基础概念入手,详细讲解数据绑定的原理及其在ASP.NET中的应用,并介绍常见数据绑定方式:手动绑定和自动绑定。接着,文章重点介绍了ASP.NET中的数据源控件,如`SqlDataSource`、`ObjectDataSource`、`XmlDataSource`和`LinqDataSource`,并通过具体示例演示如何使用`SqlDataSource`和`GridView`进行数据绑定。最后,还列举了一些常见问题及其解决办法,帮助读者更好地理解和应用这些技术。
217 4
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
127 1
|
Linux C#
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
138 0
|
C# Windows
49.c#:StatusStrip 控件
49.c#:StatusStrip 控件
401 1
49.c#:StatusStrip 控件
|
SQL 存储 Oracle
C# Web控件与数据感应之 Control 类
C# Web控件与数据感应之 Control 类
|
SQL 存储 C#
C# Web控件与数据感应之 TreeView 类
C# Web控件与数据感应之 TreeView 类
|
SQL 存储 Oracle
C# Web控件与数据感应之 CheckBoxList 类
C# Web控件与数据感应之 CheckBoxList 类

热门文章

最新文章