记录|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#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更