C#之Chart控件系列教程——一(转载)

C#中如何使用Chart图表 Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法 效果图 我们首先要加载Chart控件, 然后打开控件的属性窗口 在这个窗口里面我们可以修改曲线的名称,名称在【数据》Name】里面修改 讲一下属性窗口里面我们用到的几个选项的作用吧 数据 XValueType是X轴的数据类型,Y同理,这里我们选Time,可以随时间改变 图表 ChartType是图表的类型,我们可以选出我们想要用的类型,这里选曲线 外观 C 阅读详情

一、什么是Micosoft.Chart.Controls

 Micosoft.Chart.Controls是微软自带的一个图形可视化的组件,可以在Web程序和窗体程序中(Windowsform)中使用。在.NET4.0之后(即VS2010之后)不需要再手动安装,集成在了VS里面,比如我用的VS2017版本,直接在工具箱中点开“ 数据 ”控件,里面就有一个Chart控件,直接拖动到窗体中即可,默认创建一个chart1的实例对象。

虽然现在流行很多的图形可视化控件库,要么缺少中文参考文档,要么是很古老的版本界面丑陋,要么是需要收费的控件,故而用来很不方便,使用微软自己的Chart依然可以实现很漂亮、很简单的图形可视化操作。

二、Chart控件五大核心“ 图表属性 ”——它们均是“ 集合 ”

之所以称之为“图表属性 ”是因为在属性中,这五大属性的分类是一样的,如下图所示:

它们均是集合属性。其中中间的三个属性ChartAreas、Series、Legends是最为核心的三个,画图的时候主要用到的也是这三个,下面就这5类属性,做一个简单的介绍。

1、ChartAreas属性

      ChartAreas可以理解为是一个图表的绘图区,例如,你想在一幅图上呈现两个不同属性的内容,一个是用户流量,另一个则是系统资源占用情况,那么你要在一个图形上绘制这两种情况,明显是不合理的,对于这种情况,可以建立两个ChartArea,一个用于呈现用户流量,另一个则用于呈现系统资源的占用情况。
      当然了,图表控件并不限制你添加多少个绘图区域,你可以根据你的需要进行添加。对于每一个绘图区域,你可以设置各自的属性,如:X,Y轴属性、背景等。需要注意的是,绘图区域只是一个可以作图的区域范围,它本身并不包含要作图形的各种属性数据。   

       ChartAreas属性的定义如下:

       public ChartAreaCollection ChartAreas { get; }   由此可见,他是一个返回ChartAreaCollection的只读属性。

(1)绘图区域的添加——三种方法

               在拖动一个Chart控件到窗体中去的时候,会默认有一个Name=“ChartArea1"的对象,它是ChartArea类的一个实例。

          a、直接通过操作属性:直接点击添加,会依次按照ChartArea2这样添加下去,也可以修改名字。

          b、chart1.ChartAreas.Add("ChartArea2");当然可以起一个其它的名字

          c、ChartArea area2=new ChartArea(“ChartArea2”);

               chart1.ChartAreas.Add(area2);

     第三种方法展现了创建绘图区域的本质,即添加一个ChartArea类型的对象到ChartAreas属性里面去。

 (2)绘图区对象的获取方法

每一个绘图区本质上都是ChartArea的一个实例对象,然后将该对象Add到了chart1对象的ChartAreas集合属性,故而有两种获取方法。

         a、通过绘图区名字获取:chart1.ChartAreas["ChartArea1"].属性或方法。

         b、通过下标索引获取:   chart1.ChartAreas[0].属性或方法。

  之所以有这两种方法,是因为ChartAreas属性的本质是集合。

 (3)绘图区域常见的一些属性

        下面的这些属性均是定义在 ChartArea 类型中的,故而是绘图区的属性     

        AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式,默认为Vertical。

        AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

        AlignWithChartArea:参照对齐的绘图区名称。

        InnerPlotPosition:图表在绘图区内的位置属性。

        Position:绘图区位置属性,选项如同InnerPlotPosition。

        Name:绘图区名称。

   Axes:坐标轴集合-非常重要的部分,可分别设置X轴(X axis),Y轴(Y axis),第二X轴(SecnondaryX axis)和第二Y轴(Secnondary Y axis),常用的属性包括:

               a.ArrowStyle设置坐标轴是否有箭头

               b.Interval:轴刻度间隔大小

               c.IntervalOffset:轴刻度偏移量大小

               d.LableStyle 设置坐标轴的文字大小等

               e.MajorGrid:主要辅助线

               f.MajorTickMark:主要刻度线

               g.MinorTickMark:次要刻度线

               h.MinorGrid:次要辅助线

               i.Title:坐标轴标题

               j.TitleAlignment:坐标轴标题对齐方式

注意:Axes属性又是一个“ 集合属性”,这也是为什么是Asex,而不是Axis,因为Asex是Axis的复数形式。Asex集合中放置的元素是Axis类型的实例,我们可以通过属性设计器去完成;默认情况下,每一个绘图区会有两组坐标系,即X、Y、第二X、第二Y。要访问某一个

chart1.ChartAreas[1].Axes[3].属性或者是方法

这些属性或者是方法可以设置坐标轴的显示样式,网格的显示方式等等,可以认为定制的。

2、Series属性

          Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的合     

      Series,应该是整个绘图中最关键的内容了,通俗点说,即是实际的绘图数据区域,实际呈现的图形形状,简单点说,以折线图为例,每个Series就是一条线,每一条线都有自己的绘制形状、样式、独立的数据等。需要注意的是,每一个Series,你可以指定它的绘制区域(即把哪个Series画在哪个ChartArea),人情况下,如果不自己再添加绘图区域ChartArea,则所有的Series会画在同一个ChartArea。
       (1)Series的添加

        因为Series本身是一个集合属性,故而有两种方法添加

        第一、通过属性设置面板添加,默认情况下里面已经有了一个Series1存在了,它是 Series 类型的实例

        第二、通过代码添加。chart1.Series.Add("Series2");
        第三、直接创建一个Series对象,

                  Series series2 = new Series("Series2");
                  chart1.Series.Add(series2);

       (2)Series对象的属性和方法获取

     每一个Series本质上都是Series的一个实例对象,然后将该对象Add到了chart1对象的Series集合属性,故而有两种获取方法。

             a、通过绘图区名字获取:chart1.Series["Series1"].属性或方法。

             b、通过下标索引获取:   chart1.Series[0].属性或方法。

      之所以有这两种方法,是因为Series属性的本质是集合。

(3)图表Series一些常见的一些属性

         1.ChartArea:图表所属的绘图区域名称

         2.ChartType:图表类型(柱形、饼形、线形、点形、折线图等,有多达几十种之多)

         3.IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值

         4.Label:数据点标签文本

         5.LabelFormat:数据点标签文本格式

         6.LabelAngle:标签字体角度

         7.Legend:当前数据系列(图表)使用的图例名称

         8.Name:数据系列的名称

         9.Palette:数据系列(图表)外观定义

        10.Points:数据点集合,构成数据系列的点

        11.XValueMember:横坐标绑定的数据源

        12.XValueType:横坐标数字的类型,默认为auto,即根据传入的数据自动规定类型

        13.YValueMembers:纵坐标绑定的数据源

        14.YValueType:纵坐标数字的类型默认为auto,即根据传入的数据自动规定类型

        15.XAxisType:只是所要使用的坐标轴是主坐标还是副坐标,它有两个取值,Primary和Sencondary

        16.YAxisType:

        17. 映射区(TooTip):鼠标放在数据点上出现的小提示,建议用代码控制;

  (4)Series属性的“ 数据绑定 ”方式。——上面的Points是“ 核心 ”

             (1)Points集合

         因为points是集合,故而具有集合的相关性质,Points是一个DataPointCollection类型的集合属性。可以查看           DataPointCollection的定义来查看相关的方法。

               要给每一个Series绑定数据,主要用到以下三个方法:

  •                public void DataBind(IEnumerable dataSource, string xField, string yFields, string otherFields);
  •  
  •                public void DataBindXY(IEnumerable xValue, params IEnumerable[] yValues);
  •  
  •                public void DataBindXY(IEnumerable xValue, string xField, IEnumerable yValue, string yFields);
  •  
  •                public void DataBindY(IEnumerable yValue, string yFields);
  • 如下所示:

                       chart1.Series["Series1"].Points.DataBindXY(x, y);   即绑定了一组 X,Y到一个Series上面去了。

  3、Legends属性

MSChart的图例默认不显示,但可进行如下设置:

      1.Alignment:对齐方式

      2.AutoFitMinFontSize:当IsTextAutoFit为true时,显示的最小字体

      3.BackColor:背景颜色,当本身的绘图区域有背景时,将其设置为transparent效果更佳。

      4.enabled:是否显示图例

      5.IsTextAutoFit:文字大小根据图例区域的大小自动调整

      6.Position:图例出现的位置

4、另外两个集合属性

     Annotations注解集合
     Annotations是一个对图形的一些注解对象的集合,所谓注解对象,类似于对某个点的详细或者批注的说明,

     Titles标题合集
    根据字面含义即可以理解,是图表的标题配置,同样可以添加多个标题,以及设置标题的样式及文字、位置等属性。多看一下     它的属性即能明白各自的含义。

          

C# DevExpress组件 - ChartControl图表控件 C# DevExpress组件 - ChartControl图表控件学习-整体感知(一) 1 逻辑框架图梳理 以逻辑框架图,进行代码验证 2 代码实现 2.1 实现内容 代码实现:添加一个ChartControl图表控件,并提供显示三个变量显示在三个位置 2.2 初始界面配置 添加一个menustrip组件,并防止顶部,界面如下: 双击:添加一个ChartControl控件 按钮,编写添加相关程序 2.3 代码 using DevExpress.XtraCharts; using System; usi 阅读详情

相关推荐

C#使用dev的ChartControl控件绘图

本文介绍了C#winform中如何使用dev的ChartControl控件进行绘图。

mingupup的博客 2997

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

原文有备份,如有错误和需要改进的地方,请不吝指正Chart控件,chart、Series、ChartArea曲线图绘制的重要属性" title="C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性" style="margin:0px; padding:0px; border:0px; list-style:none; width:22px; height:22

luckypeng的专栏 5295

C#中chart控件如何实现滚动条?

当数据库中数据过多时,往往无法在一页中展示,所以非常需要一个滚动条来调节页面内容,那么C#中chart控件如何实现滚动条? 还是以软件【银行业会计技能训练系统】为例,如下图,X轴内容较多,如何实现如下效果的滚动条? 方法及源码如下: 本文基于文章【C#中chart控件如何连接并展示access数据库中特定内容】,在此基础上增加了滚动条功能。只需添加如下代码,即可实现X轴上的滚动条。 ...

TING说 1万+

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

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

DannyIsCoder的博客 2万+

黏菌算法(Slime Mould Algorithm,SMA)

这是一篇关于黏菌算法的总结博客,包含算法思想,算法步骤,求函数最值(Python实现),算法改进等,持续更新ing

weixin_46838605的博客 1万+

团结引擎+OpenHarmony 记录 (持续更新中)

获取不到的原因是因为二者不在同一个线程中,所以数据没有同步。而 globalThis.context 数据进行了同步。(TuanjieMainWorkerHandler.ts中可以看到)在进行绘制 UI 的时候 ,如果组件有 Native API 就可能不会显示出来,例如 web 控件就不能展示出来,刚加上权限的时候 会报错 因为缺少 reason ,添加上就不会报错了。只有纯 UI 控件是可以展示出来的,注释掉 web控件后就可以。

m_cainiaokuaifei的博客 1490

C# chart控件基础使用

允许转载,但请指明来源基本介绍:chart(图表)(此文主要针对有一定控件编程基础者)功能:主要用来绘制折线图,柱状图与饼状图,也可达到动态效果(例如作示波器);Chart控件的结构需要说明 一个chart可以包含多个chartArea。 chartArea是具体的坐标区域。 每一个chartArea主要包含X轴,Y轴,副X轴(上方),副Y轴(右方),绑定的线条,绑定的图例。  数据列可以有许多,...

z892065502的博客 7224

保姆级教程:手把手调试PX4Ctrl的油门映射与姿态控制(附ROS节点配置)

本文提供PX4Ctrl的深度调参指南,涵盖油门映射、姿态控制及ROS节点配置等关键环节。通过详细解析PX4控制器的核心逻辑、递归最小二乘法(RLS)参数估计及状态机设计,帮助开发者优化无人机飞控性能。附实战案例与安全调试建议,适合PX4开发者进阶学习。

weixin_30363981的博客 382

c# chart 点值标注_Winform(C#)中Chart控件鼠标点击显示波形上相应点对应坐标轴的x,y值...

方法一:鼠标点击波形鼠标点击波形,显示点击位置的x,y值private void chart1_MouseClick(object sender, MouseEventArgs e) //chart1是你建的chart控件,实际名字根据你自己代码里的命名{HitTestResult hit = chart1.HitTest(e.X, e.Y);if (hit.Series != null){va...

weixin_39846361的博客 3276

零基础搭建本地AI绘画环境:Stable Diffusion 3.5保姆级安装教程(含中文优化方案)

本文提供零基础搭建本地AI绘画环境的详细教程,重点介绍Stable Diffusion 3.5的安装与中文优化方案。从硬件配置检查到软件依赖安装,再到核心组件配置与中文语义增强,教程涵盖全流程操作指南,帮助用户快速掌握AI文生图模型的本地部署技巧,提升创作效率。

weixin_30752699的博客 312

Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2020

Yolov8引入轻量级网络Ghostnet、G_ghost、Ghostnetv2等,减少最新的深度神经网络的计算成本,引入高效的神经网络结构。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2565

8.5.4 Chart(图表)控件(C#)

由于Chart控件中可以包含多个区域多个图表,所以它的一些属性是集合对象,比如Titles属性等,其中最重要三个集合对象是Series、ChartAreas、Legends。Chart(图表)控件提供了绘制多种图表的方法,包括条形图、折线图、饼图等。对于Chart控件显示区域的划分,可以参看《8.5.4.5 ChartArea 类》下面图8A-17。学习更多C#知识,请参看。

学习微软 .net 技术开发 1445

Windows上MSYS2的安装和使用

MSYS2这个工具我是越用越喜欢,很多东西放在Linux上如鱼得水但是放在Windows上就没那么好用,比如ffmpeg,opencv等直接引用就行了,这个工具真的很省事。接下来带你们看看它的妙用。1、好好研究确实妙用无穷。

jiexijihe945的博客 4141

Winform(C#)中Chart控件鼠标点击显示波形上相应点对应坐标轴的x,y值

方法一:鼠标点击波形 鼠标点击波形,显示点击位置的x,y值 private void chart1_MouseClick(object sender, MouseEventArgs e) //chart1是你建的chart控件,实际名字根据你自己代码里的命名 { HitTestResult hit = chart1.Hit...

baijie1314521的博客 3990

工业质检终极方案:C#上位机融合 YOLO+Blob分析(一站式尺寸测量+缺陷检测)

本次上位机界面严格遵循工业现场操作规范简洁、直观、按钮大、文字清晰、参数可视化调节,操作人员为车间工人/质检员,无需复杂操作,所有功能一目了然。所有控件均为WinForms原生控件,拖拽即可完成布局,无任何自定义控件,开发效率拉满,核心布局永久复用本次实战完成的C#上位机+YOLO+Blob融合质检方案,是工业规则零件全尺寸质检的终极落地方案,完美解决了单一检测方案的所有短板,具备以下不可替代的工业价值。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1343

UG NX二次开发(C#)-读取PMI对象的名称

摘要:本文介绍了在UG NX中通过NXOpen获取PMI对象名称的方法。首先说明PMI对象初始无名称,可通过重命名或属性设置名称。然后提供C#代码示例,展示如何遍历PMI集合获取对象名称,并显示名称和类型信息。适用于需要操作PMI对象的开发人员,欢迎加入技术交流QQ群749492565。(99字)

GimiGimmy 590

C# chart 关于实时更新传感器数据

因为自己毕业需要做一个有关环境监测的项目,原理是通过无线采集环境信息,将信息实时保存到数据库,上位机是winform程序,程序需要实时的显示已经采集到的数据,并用曲线的方式表现出来,自己折腾了几天,也算是有一些小的收货,自己也是刚接触C#编程,给我的感觉非常的好。 用到的chart控件下载地址链接: http://pan.baidu.com/s/1eSnYj3W 密码: xqhm...

weixin_30247307的博客 1603

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Winform Chart 控件读取datatable后显示图表

private void Button2_Click(object sender, EventArgs e) { DataTable table = new DataTable(); this.chart1.Series.Clear(); //清空图表中的内容 this.ch...

weixin_30247307的博客 1426

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【转载】关于CHART控件使用的一个例子

了, 折腾了大半天, 也没弄好, 周日在家, 不死心, 又反复调试, 终于功夫不负有心人, 成功自定义显示了"X轴", 在此写下来, 以供以后参考!效果见图, 比如2022/11/2这天, 1点多, 3点多巡逻了, 留下了巡检记录数据, 这个是厂里的巡更棒, 市面上很常见, 可以下载到电脑上。最近一段时间, 有用到WinForm的chart控件, 主要是做了一个纺织行业的验布数据的图表显示, 比如长度值和重量值的曲线绘制,下面是代码(主要是思想, 算是DEMO)

qq_43379938的博客 506

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

转载:C#中chart的一些属性

C#中chart的一些属性

W9999996的博客 1708

C#曲线图柱状图和折线图,用了2个chart控件实现

chart1.ChartAreas[0].AxisX.MajorGrid.LineWidth = 0; chart1.ChartAreas[0].AxisX.Interval = 1;?? //设置X轴坐标的间隔为1 chart1.ChartAreas[0].AxisX.IntervalOffset = 1;? //设置X轴坐标偏移...

tangliuqing的专栏 1583

C# Chart 曲线(多曲线展示)

//绑定显示曲线数据(Chart控件名:) //X轴标题 this.CurveChart.ChartAreas["ChartArea1"].AxisX.Title = " "; //Y轴标题 this.CurveChart.ChartAreas["ChartArea1"].Ax...

weixin_30776545的博客 3687

WinForm的Chart控件画饼状图

1 private void Form2_Load(object sender, EventArgs e) 2 { 3 chart1.Series.Clear(); //清除默认的Series 4 Series Strength = new Series("力量"); //new 一个叫做【Str...

weixin_30624825的博客 2049

【转】C# chart控件用法

通常我们需要在界面中绘制波形图,柱状图,折线图等等。此时用到Chart控件是非常方便的。 先以图一条样条曲线(Spline)为例 (1)在Visual Studio中新建一个“Windows窗体应用程序” (2)在Form1上布置一个Chart控件。默认地,Chart控件显示的是直方图 (3)Form1的窗体代码Form1.cs using System; using S...

weixin_30664615的博客 952

从0自学C#08--绘制曲线chart控件

本文转载连接: https://blog.youkuaiyun.com/tclxspy/article/details/50818000chart控件的使用本文介绍如何使用工具箱里的chart控件,绘制多条曲线。效果图如下:1.InitializeChart在窗体里添加chart控件,然后在属性里清空ChartAreas、Legends和Series集合,它们会由下面代码动态实现。在窗体构造函数里,实现I...

newbie的博客 3624

C# chart控件绘制多图表区图像

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34295316的博客 1457
上一篇: 摄像头常见参数解释(转载)
下一篇: 32-SIFI特征点提取(EmguCV学习)
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值