记录|C# winform——Chart控件

2024-08-24 09:20

本文主要是介绍记录|C# winform——Chart控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 前言
  • 一、重点关注
    • 1.1 Chart控件效果
    • 1.2 属性
      • 1.2.0 位置讲解
      • 1.2.1 Titles——标题集合
        • Text
        • ToolTip
      • 1.2 .2 Series——图表序列
        • ChartType
        • Legends——图例集合
  • 二、数据传入Chart控件
    • 2.1 如何传入数据?
    • 2.2 如果想限定每次展现的数据量怎么办?
  • 三、标注每个点的值
    • 3.1 如何在图表中标出每个点的值?
      • 可视化理解
      • 代码编写
      • 效果展示
  • 四、多个Chart控件演示【只是演示的时候方便】
  • 更新时间


前言

参考视频:
零基础C#教程037期 winform大数据Chart图形开发技巧


一、重点关注

1.1 Chart控件效果

在这里插入图片描述

1.2 属性

下图中的都是集合
在这里插入图片描述
比较重要的是:标题、序列、图例

1.2.0 位置讲解

在这里插入图片描述

1.2.1 Titles——标题集合

这个是Chart控件中的属性。是个集合。
集合中的每个成员都是控件。

Text

Titles集合里面的每个成员都是个Title控件。【如下图】
在这里插入图片描述
效果如下图:
在这里插入图片描述

ToolTip
  • 用于制作提示信息,需要鼠标移动上时触发【效果如下:】
    在这里插入图片描述

1.2 .2 Series——图表序列

在这里插入图片描述
序列,就是数据展示的形式。可以是柱状图、折线图、散点图。

ChartType
  • 选择序列展现的形式。有柱状图、折线图、散点图。
    在这里插入图片描述
Legends——图例集合
  • 这里配置图例的颜色和展现样式

二、数据传入Chart控件

2.1 如何传入数据?

  • 首先,需要在Form的Load()方法中进行配置。
  • 其次调用Point.Add()就可以实现添加数据
    简单的代码如下:
        private void Form1_Load(object sender, EventArgs e){for(int i = 0; i < 10; i++){Random rdom = new Random();chart1.Series[0].Points.Add(rdom.Next(0,101));}}
  • 运行后效果如下:
    在这里插入图片描述
  • 可以添加个Timer触发器,让图中的数据动态移动展示。【如下图】
    在这里插入图片描述

2.2 如果想限定每次展现的数据量怎么办?

如果数据如下图中,每次都在不断增加,但是窗体有限,结果很拥挤,需要对每次展现的数据量进行控制怎么办?
在这里插入图片描述
-下面代码是:每次只展示10个点的作用

        private void timer1_Tick(object sender, EventArgs e){//当前图例展示的数据数量到到达10个时,将第一个移除,再添加一个点if (chart1.Series[0].Points.Count == 10){chart1.Series[0].Points.RemoveAt(0);}Random rdom = new Random();chart1.Series[0].Points.Add(rdom.Next(0, 101));}
  • 效果如下:
    在这里插入图片描述

三、标注每个点的值

3.1 如何在图表中标出每个点的值?

可视化理解

先在Chart控件中,找到Series集合。
在里面找到Points集合【如下图】
在这里插入图片描述
在Point中创建个DataPoint对象。
XValues+YValues能指定展示的位置
Label:显示展示的点的值。
在这里插入图片描述

代码编写

基于上面的可视化理解后,下面的代码就好理解了。

        private void timer1_Tick(object sender, EventArgs e){//当前图例展示的数据数量到到达10个时,将第一个移除,再添加一个点if (chart1.Series[0].Points.Count == 10){chart1.Series[0].Points.RemoveAt(0);}Random rdom = new Random();int current_point = rdom.Next(0, 101);DataPoint dataPoint = new DataPoint();dataPoint.YValues = new double[] { current_point };dataPoint.Label = current_point.ToString();chart1.Series[0].Points.Add(dataPoint);}

效果展示

在这里插入图片描述

四、多个Chart控件演示【只是演示的时候方便】

  • 作用:演示的时候,用一组数据去控制多个Chart控件的展示。【代码如下:】
        private void timer1_Tick(object sender, EventArgs e){for (int i = 1; i <= 4; i++) {Chart chartList = tableLayoutPanel1.Controls.Find("chart" + i.ToString(), true)[0] as Chart;//当前图例展示的数据数量到到达10个时,将第一个移除,再添加一个点if (chartList.Series[0].Points.Count == 10){chartList.Series[0].Points.RemoveAt(0);}Random rdom = new Random();int current_point = rdom.Next(0, 101);DataPoint dataPoint = new DataPoint();dataPoint.YValues = new double[] { current_point };dataPoint.Label = current_point.ToString();chartList.Series[0].Points.Add(dataPoint);}}

注意:tableLayoutPanel1.Controls.Find(“chart” + i.ToString(), true)——Find()方法中的true表示是找Panel中的子控件

  • 效果:
    在这里插入图片描述

更新时间

  • 2024.08.23:创建

这篇关于记录|C# winform——Chart控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102076

相关文章

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

C# Where 泛型约束的实现

《C#Where泛型约束的实现》本文主要介绍了C#Where泛型约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用的对象约束分类where T : structwhere T : classwhere T : ne

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr