标签:

在.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

{

///

/// 绘制曲线类

///

public static class DrawClass

{

#region 绘制曲线函数

///

/// 绘制曲线函数

///

/// X值集合

/// Y值集合

/// Chart控件

public static void DrawSpline(List listX, List 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 鼠标点击,通过环号显示游标,并缩放到响应位置

///

/// 鼠标点击,通过环号显示游标,并缩放到响应位置函数

///

/// 环号

/// Chart控件

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

}

}

标签:

c#样条曲线命令_C# chart控件绘制曲线相关推荐

  1. 使用.net 的Chart控件绘制曲线图

    System.Windows.Forms.DataVisualization.Charting 命名空间 System.Windows.Forms.DataVisualization.Charting ...

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

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

  3. C#chart控件绘制折线图、柱状图、饼图、雷达图

    转载来源:https://blog.csdn.net/u011854789/article/details/82946553 参考链接: http://www.cnblogs.com/winshe/a ...

  4. C#Chart控件 获取曲线上点的信息

    使用Chart控件实时画线时,鼠标知道某个点上时,要提示这个点的坐标信息. 我对曲线的ToolTip属性进行了设置,结果是除了X轴上的点,其他的点都无法提示信息.如下图所示: 此时可以用GetTool ...

  5. C#:winform使用chart控件绘制折线图,时间轴可缩放

    最近做的一个项目里用到这部分 打算记录下来 挖个坑 已填 Chart坐标轴横轴为时间,纵轴是数值 如果只是一次性绘图,那么遍历一遍数据即可 如果想连续绘制(比如按照时间更新绘制),就需要一个Timer ...

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

    原文有备份,如有错误和需要改进的地方,请不吝指正会继续修改的 8个月没写博客了- -,一来是有不想继续干开发的想法,二来是赖的写,三来还是不想总结.所以为了继续坚持自己的开发和总结的信念,总结一下C# ...

  7. 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年11月19日为止,目前已经更新了 149 篇,专栏完成度为 49.6%. 作者简介 Jerry ...

  8. C# chart控件基础使用

    基本介绍:chart(图表) 功能:主要用来绘制折线图,柱状图与饼状图,也可达到动态效果(例如作示波器): 需要说明 一个chart可以包含多个chartArea. chartArea是具体的坐标区域 ...

  9. C#中Chart控件的一些由浅至深的理解

    最近在做这样一个桌面应用程序,从公司后台服务器查询后,获取到设备上报的数据(每条都是字符串+JSON的形式),其中字符串里包含了设备名称.上报时间这两条信息,JSON中则包含了数据上报类型.重点关注的 ...

最新文章

  1. Android Demos
  2. boost::multiprecision模块实现导入/导出 cpp_int 的位 到 8 位无符号值的向量相关的测试程序
  3. python函数封装计算n运算_在Python里面怎么可以运算出999999999**999999999,求思路?...
  4. 入门干货:Python操作Word文件经验分享
  5. 以太网的分层架构_【新能源汽车专题】智能车时代的核心,电子架构系统深度解读,国内8股进入全球产业链(名单)...
  6. 顺丰拟发行58亿可转债:15亿投入航空运力,12亿还贷款
  7. SAP License:SAP收购Roambi,领导全球市场商务分析云迁移
  8. 1个已知CVE,7步,找到一个高质量RCE并获奖金
  9. 原生js的ajax的get怎么传参,原生js---ajax---get方法传数据
  10. 4.算法通关面试 --- 树和图
  11. sqlmap教程(burpsuit辅助)
  12. 记苹果企业开发者账号申请踩过的坑
  13. linux查看文档结构图,Linux之文本处理
  14. 51单片机的温湿度控制系统
  15. the page has expired due to inactivity. please refresh and try again
  16. stm32mp15x环境搭建基于linux环境(上)
  17. java与c的交互,java与c/c++之间的数据交互,java交互
  18. 你知道域名劫持的重要性吗? 教你防范网站被域名劫持
  19. 使用simulink进行stm32开发1
  20. HDU1718--Rank

热门文章

  1. 请问nj文件如何用html的解析,nj.renderH
  2. Java程序员:真是会服了面试官,不就要个40k嘛硬是把Spring问烂
  3. 云之讯php,云之讯短信开发
  4. linux命令part,技术|十个鲜为人知的 Linux 命令-Part 3
  5. 盛银消费金融:年报亮眼背后,资产规模或限制持续增长
  6. 软件测试项目交付,成功交付离岸项目的三个步骤
  7. wow服务器维护精英怪,魔兽世界tbcp2精英怪去哪刷_wowtbc怀旧服p2稀有精英刷新点_3DM网游...
  8. 关于用盐去黑头的亲身经历~ - 生活至上,美容至尚!
  9. 时评素材2019简短华为鸿蒙,2019社会热点话题时评素材:从网络热词看生活热度...
  10. 【汇正财经】波段操作有哪些运用技巧?