在进行软件开发过程中我们可能会碰到需要生成图表的情况,在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图、柱状图什么的了。废话不多说,直接附上代码,实现绘制曲线图,并能进行视图缩放,注释很多,相信一看就明白。

 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[].Points.DataBindXY(listX, listY);
chart.Series[].Points.DataBindY(listY); //点颜色
chart.Series[].MarkerColor = Color.Green;
//图表类型 设置为样条图曲线
chart.Series[].ChartType = SeriesChartType.Spline;
//设置点的大小
chart.Series[].MarkerSize = ;
//设置曲线的颜色
chart.Series[].Color = Color.Orange;
//设置曲线宽度
chart.Series[].BorderWidth = ;
//chart.Series[0].CustomProperties = "PointWidth=4";
//设置是否显示坐标标注
chart.Series[].IsValueShownAsLabel = false; //设置游标
chart.ChartAreas[].CursorX.IsUserEnabled = true;
chart.ChartAreas[].CursorX.AutoScroll = true;
chart.ChartAreas[].CursorX.IsUserSelectionEnabled = true;
//设置X轴是否可以缩放
chart.ChartAreas[].AxisX.ScaleView.Zoomable = true;
//将滚动条放到图表外
chart.ChartAreas[].AxisX.ScrollBar.IsPositionedInside = false;
// 设置滚动条的大小
chart.ChartAreas[].AxisX.ScrollBar.Size = ;
// 设置滚动条的按钮的风格,下面代码是将所有滚动条上的按钮都显示出来
chart.ChartAreas[].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.All;
chart.ChartAreas[].AxisX.ScrollBar.ButtonColor = Color.SkyBlue;
// 设置自动放大与缩小的最小量
chart.ChartAreas[].AxisX.ScaleView.SmallScrollSize = double.NaN;
chart.ChartAreas[].AxisX.ScaleView.SmallScrollMinSize = ;
//设置刻度间隔
chart.ChartAreas[].AxisX.Interval = ;
//将X轴上格网取消
chart.ChartAreas[].AxisX.MajorGrid.Enabled = false;
//X轴、Y轴标题
chart.ChartAreas[].AxisX.Title = "环号";
chart.ChartAreas[].AxisY.Title = "直径";
//设置Y轴范围 可以根据实际情况重新修改
double max = listY[];
double min = listY[];
foreach (var yValue in listY)
{
if (max < yValue)
{
max = yValue;
}
if (min > yValue)
{
min = yValue;
}
}
chart.ChartAreas[].AxisY.Maximum = max;
chart.ChartAreas[].AxisY.Minimum = min;
chart.ChartAreas[].AxisY.Interval = (max - min) / ;
//绑定数据源
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[].CursorX.Position = ringNum;
//设置视图缩放
chart.ChartAreas[].AxisX.ScaleView.Zoom(ringNum - , ringNum + );
//改变曲线线宽
chart.Series[].BorderWidth = ;
//改变X轴刻度间隔
chart.ChartAreas[].AxisX.Interval = ;
}
#endregion }
}

使用.net 的Chart控件绘制曲线图的更多相关文章

  1. C# chart控件绘制曲线

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

  2. 用Chart控件绘制动态图表

    进行程序设计时,选用一个合适的ActiveX控件,有时可大大减少编程工作量.ActiveX 控件(又称OCX)基于COM技术,作为独立的软件模块,它可以在任何程序设计语言中插入使用.本文仅以VC++为 ...

  3. c# 通过.net自带的chart控件绘制饼图pie chart

    c# 通过.net自带的chart控件绘制饼图pie chart   需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 具体的实现步骤: > ...

  4. C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展

    一.需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 1.设置chart1的属性Legends中默认的Legend1的Enable为false: ...

  5. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性

    http://blog.sina.com.cn/s/blog_621e24e20101cp64.html 为避免耽误不喜欢这种曲线图效果的亲们的时间,先看一下小DEMO效果图: 先简单说一下,从图中可 ...

  6. Chart控件,chart、Series、ChartArea曲线图绘制的重要属性介绍

    先简单说一下,从图中可以看到一个chart可以绘制多个ChartArea,每个ChartArea都可以绘制多条Series.ChartArea就是就是绘图区域,可以有多个ChartArea叠加在一起, ...

  7. javascript曲线图和面积图Line & Area chart控件功能及下载

    Line & Area chart 控件是一款新型的.可用性极强的曲线图和面积图产品.一个您网站的访问者可以放大他感兴趣的一段区域,打开和关闭数值气球,并可显示和隐藏图表.您能创建简单.堆积. ...

  8. ZedGrap控件绘制图表曲线

    问题描述: 使用C#中ZedGrap控件绘制图表曲线图 ZedGrap 介绍说明:     安装ZedGrap控件 ZedGraph控件dll文件: 添加ZedGraph控件,首先在新建立的C#图像工 ...

  9. winform Chart控件 获取鼠标处坐标值方法

    Chart控件本身功能强大,应用广泛,因此其属性.方法也很多.此处介绍在很多应用中需要查看鼠标位置处坐标值的一些方法 1,调用Chart事件  GetToolTip 利用ToolTipEventArg ...

随机推荐

  1. 我的开发框架(WinForm)4

    日志模块 对于一个系统来说,日志模块是必不可少的,它能给后面系统的维护和bug的修复,带来极大的方便..net的日志模块有很多,比较流行的有Log4Net,NLog,还有微软企业库的日志模块,我采用的 ...

  2. 条件阻塞Condition的应用

    Condition的功能类似在传统线程技术中的Object.wait和Object.notity的功能.   例子:生产者与消费者 import java.util.Random; import ja ...

  3. 详细讲解Android对自己的应用代码进行混淆加密防止反编译

    1.查看项目中有没有proguard.cfg. 2.如果没有那就看看这个文件中写的什么吧,看完后将他复制到你的项目中. -optimizationpasses 5 -dontusemixedcasec ...

  4. SICP的一些练习题

    1.3 较大两个数之和 (define (MaxSum x y z) (+ (cond ((or (> x y) (> x z)) x) ()) (cond ((or (> y x) ...

  5. Freemarker 输出$和html标签等特殊符号

    场景:程序员都不喜欢看文档,而更喜欢抄例子.所以,我们把平台组的组件都做成例子供别人参考.我们前端展示层使用的是freemarker,所以 遇到这个问题,比如我们要让前端显示freemarker自己的 ...

  6. [记录]使用Gitblit 在windows 上安装Git Server

    参考了: Windows平台下搭建Git服务器的图文教程 主要修改了:data/gitblit.properties # Include Gitblit's 'defaults.properties' ...

  7. ACM——第几天

    第几天 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 1830            测试通过 : 525 描 ...

  8. iss 防火墙

    控制面板\系统和安全\Windows 防火墙\允许的程序 如下图 将万维网服务(HTTP)打勾即可访问你的网站. 转自:http://bbs.pcbeta.com/viewthread-604506- ...

  9. win10 删除资源管理器中的6个文件夹

    细心的朋友会发现,在Win10此电脑(计算机)中,除了我们最熟悉的磁盘外,还新增了视频.图片.文档.下载.音乐.桌面这6个文件夹.不少网友举觉得这6个文件夹其实并没什么用,想要去除删掉.那么Win10 ...

  10. java新手笔记26 Frame

    0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...