C# Chart控件标记问题详解

前言

在做项目的时候,遇到一个需求,需要我对Chart图标标记数据正在运行,实现数据可视化,因为我们的表格是隐藏Y轴的刻度是看不到数据值的,于是采用数据标记的形式来动态展示值,那么我们应该怎么去处理这个问题呢,阅读这篇文章吧,我们一起学习学习一下,创作不易,大家点赞关注评论收藏,你的点赞和关注是我创作的动力,也是我持续不断学习的动力。谢谢大家啦!!!

效果展示

先来展示一下我们的效果,看看是怎么回事,在看看有没有欲望往下面看看文章,主要是对Chart图的标记问题做了处理,我们使用了Chart控件的一个对Point点的设置实现这种动态展示Chart图的标记,两张图的效果对比非常明显,对于我们 有这样的需求的项目可以采用这样的形式,或者采用另一种的鼠标点击弹出提示,下篇文章应该会写出来和大家一起学习一下,大家多点赞,我创作的动力更强。

解决方法

我们来看一下解决的方法,我使用Chart控件里面对Point的MarkerStyle 进行标记,实现这样的方式,对MarkerStyle 的样式设置标记大小,标记颜色,以及标记展示的值,使用的是随机函数产生的数据,生成的表格,对表格的数据添加,然后在对这个点进行标记,只标记最新是使用标一个去一个的方式,就是我把最新的标记好,把上一个去掉标记,哪个按钮我只给了一个状态值让它去判断是最新还是一直标记,也可以加个状态不标记。后面贴了代码你们可以后期自己二次更新。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace TestIC00
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }
        public int index = 0;
        public bool flag = false;
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = !timer1.Enabled;//对定时器的操作,点击打开或关闭定时器,主要是实现一秒传一个值
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            Random random = new Random();
            this.chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 1;//网格间隔
            this.chart1.ChartAreas[0].AxisX.MinorGrid.Interval = 1;
            this.chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 1;//网格间隔
            this.chart1.ChartAreas[0].AxisY.MinorGrid.Interval = 1;
            this.chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;//设置X轴的值的间隔大小
            this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;//设置X轴网格线颜色
            this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//设置Y轴网格线颜色
            chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;//启动滚动条
            this.chart1.ChartAreas[0].AxisY.LabelStyle.Enabled = false;//使Y轴的刻度隐藏
            chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last);//启用视图实现数据滚动
            int value = random.Next(0, 20);//产生随机数进行赋值
            chart1.Series[0].Points.AddY(value);//对折线图添加数据
            if(flag)//判断标记,如果是true表示只标记最新,需要去掉前面的一个值
            {
                this.chart1.Series[0].Points[index].MarkerStyle = MarkerStyle.Circle;//设置标记的形状为圆形
                this.chart1.Series[0].Points[index].MarkerColor = Color.Red;//形状颜色设置
                this.chart1.Series[0].Points[index].MarkerBorderWidth = 3;//形状大小设置
                this.chart1.Series[0].Points[index].MarkerSize = 10;//设置我们展示标记的大小
                this.chart1.Series[0].Points[index].Label = "功能:" + this.chart1.Series[0].Name + "\r\n" + "值:" + value.ToString();//对标记展示的值
                this.chart1.Series[0].Points[index].IsValueShownAsLabel = true;//展示标记
                this.chart1.Series[0].Points[index-1].MarkerBorderWidth = 0;//改前一个标记的大小
                this.chart1.Series[0].Points[index - 1].MarkerSize = 0;//形状大小
                this.chart1.Series[0].Points[index - 1].Label = "";//展示数据
                this.chart1.Series[0].Points[index - 1].IsValueShownAsLabel = false;//不展示
            }
            else//对数据一直标记
            {
                this.chart1.Series[0].Points[index].MarkerStyle = MarkerStyle.Circle;
                this.chart1.Series[0].Points[index].MarkerColor = Color.Red;
                this.chart1.Series[0].Points[index].MarkerBorderWidth = 3;
                this.chart1.Series[0].Points[index].MarkerSize = 10;
                this.chart1.Series[0].Points[index].Label = "功能:" + this.chart1.Series[0].Name + "\r\n" + "值:" + value.ToString();
                this.chart1.Series[0].Points[index].IsValueShownAsLabel = true;
            }
           //也可以加一种状态是什么也不标记,你们自己对那个状态值的处理就可以啦
            index++;
        }

        private void button2_Click(object sender, EventArgs e)//只标记最新按钮
        {
            flag = !flag;//对状态值的改变,我就使用了两种状态,你们可以改
        }
    }
}

总结

这篇文章主要是对博主遇到的一个问题的一种简单的解决办法,虽然很简单,但是还是有技术含量的,C#的问题太多了,而去解决的人太少,我们要懂得分享,而我们发文章的人太少啦,所以我把我遇到的一些问题的解决办法发出来,让大家指点我一下,我们一起学习一下,当然还有别的方法,别的方法是用鼠标点击展示

到此这篇关于C# Chart控件标记问题详解的文章就介绍到这了,更多相关C# Chart控件标记内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#使用DevExpress中的XtraCharts控件实现图表

    目录 一.总体概述 二.chartControl层\XYDiagram层 1.当坐标轴的数据类型是数字时 2. 当前数据类型是字符串时 3.当前数据类型是时间 三.实例 1.饼状图 1.1.添加ChartControl控件 1.2.准备数据 1.3.根据数据创建饼状图 1.4.设置饼状Series显示方式(值/百分比) 2.柱状图 2.1.添加ChartControl控件 2.2.准备数据 2.3.根据数据创建柱状图 2.4.用到的方法 四.事件 1.CustomDrawAxisLabel :

  • 一文详解C# Chart控件

    目录 前言 1.创建窗体文件 2.设计界面 3.配置toolTip控件 4. 对需要设置提示的地方设置提示 4.1 简单效果演示 4.1.1 默认提示样式 4.1.2 使用气泡样式 4.2 对提示设置图标和标题 4.3 使用代码对图标和标题动态设置 5. 整体效果展示 总结 前言 前段时间学习Chart控件,对Chart控件的,怕以后忘记,所以总结一下自己的学习成果,怕以后忘记方便自己下次复习.这篇文章只是学习的文章,有些知识点没学到,望各位海涵,有什么错误点望大家指正,觉得这篇文章有帮助可以点

  • C#实现chart控件动态曲线绘制

    本文实例为大家分享了C#实现chart控件动态曲线绘制的具体代码,供大家参考,具体内容如下 思想 实验室要做一个动态曲线绘制,网上方法很多,但是缺乏完整代码和效果图的整合,往往总是缺少其一,因此整理如下,方便大家编程,节约时间.思路:新建一个队列,利用timer控件,动态的往队列中加入数据,每次触发事件,就相当于将队列中的值全部重新画一遍. 我的目的是做四个点的动态监测,所以代码重复了四次,其实应该用4个线程来做,思路就显得较为清晰了,这也是可以改进的地方. public partial cla

  • c# 设置TeeChart控件的提示文本

    使用第三方Steema的TeeChart控件,设置鼠标放在某一线条点上,显示某一点的数据标签问题(虚线型十字光标基准线,放在线上显示对应点的二维坐标轴数据数据),调用InitTeeChartTipTools方法即可: /// <summary> /// TeeChart线条的指示工具 /// </summary> Steema.TeeChart.Tools.CursorTool cursorTool; /// <summary> /// 鼠标指示显示的文本 /// &l

  • C# Chart控件标记问题详解

    前言 在做项目的时候,遇到一个需求,需要我对Chart图标标记数据正在运行,实现数据可视化,因为我们的表格是隐藏Y轴的刻度是看不到数据值的,于是采用数据标记的形式来动态展示值,那么我们应该怎么去处理这个问题呢,阅读这篇文章吧,我们一起学习学习一下,创作不易,大家点赞关注评论收藏,你的点赞和关注是我创作的动力,也是我持续不断学习的动力.谢谢大家啦!!! 效果展示 先来展示一下我们的效果,看看是怎么回事,在看看有没有欲望往下面看看文章,主要是对Chart图的标记问题做了处理,我们使用了Chart控件

  • C# WPF ListView控件的实例详解

    C# WPF ListView控件的实例详解 C#的WPF作为现在微软主流的桌面程序开发平台,相比过去的MFC时代,有了非常多的不同.本人刚从MFC平台转过来,以为可以轻松上手,哪知碰到了很多问题,十分不解.不得不乖乖回去看了本书,再继续回到边左边边学的路上.在这边也推荐<深入浅出WPF>这本书,拿来上手还是极好的. 由于WPF以数据驱动UI的设计理念,很多控件用起来都与之前平台的相差很多,ListView控件算是有代表性的,这是进化的成果.关于该控件的应该,很多参考了这篇博文,如觉本人记述不

  • Android中Spinner(下拉框)控件的使用详解

    android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧. Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器.Spinner是View类得一个子类. 1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" and

  • Python中Qslider控件实操详解

    在学习一些pyqt5的内容后,我们对于其中的组件也有所接触.本篇所要带来的是Qslider控件,也可以说是python中比较常见的控件了.在一些具体的使用和方向等相关的操作上,很多人是没有全面的进行过系统学习的.下面我们就这些操作逐个为大家带来介绍,一起来看下Qslider控件的使用吧. 1.控件介绍和使用 qslider解释为滑块控件,用于方便左右滑动. 往往这类滑动更多用于屏幕可以触碰的设备. 我们想要使用滑块控件,本质上实则就是调用Qslider类. 使用的时候,首先对qslider这个类

  • ASP.NET中BulletedList列表控件使用及详解

    BulletedList 控件创建一个无序或有序(编号)的项列表,它们分别呈现为 HTML UL 或 OL 标记.可以指定项.项目符号或编号的外观,可以静态定义列表项或通过将控件绑定到数据来定义列表项,也可以在用户单击项时作出响应. 对于ASP.NET 1.x里要动态显示Bulledted List时,要么自己利用HTML的<ol>或<ul>元素构造,要么就是"杀鸡用牛刀"的动用Repeater来显示.前者过于死板,后者过于Overkill,也许微软听到这种声音

  • Android官方下拉刷新控件SwipeRefreshLayout使用详解

    可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介: SwipeRefreshLayout组件只接受一个子组件:即需要刷新的那个组件.它使用一个侦听机制来通知拥有该组件的监听器有刷新事件发生,换句话说我们的Activity必须实现通知的接口.该Activity负责处理事件刷新和刷新相应的视图.一旦监听者接收到该事件,就决定了刷新过程中应处理的地方.如果要展示一个"刷新动画",它必须

  • Bootstrap树形控件使用方法详解

    一.JQuery树形控件 Jquery树形控件是一款基于JQuery+bootstrap.完全通过js和样式手写出来的非常轻量级的控件,网上很多地方都能看到它的影子.它功能简单.用户体验不错.对于一些简单的层级关系展示比较实用,但对于节点的增删改实现起来就不容易了,如果非要做,可能需要自己去封装. 1.一睹初容 全部收起 展开一级 全部展开 2.代码示例 此控件实现起来也非常简单,只需要引用jQuery和bootstrap组件即可. <link href="~/Content/Tree1/

  • jQuery日程管理控件glDatePicker用法详解

    本文实例讲述了jQuery日程管理控件glDatePicker用法.分享给大家供大家参考,具体如下: 之前接触过一款日程管理控件,叫 FullCalendar,功能很强大,会列出每天的事项,可选择编辑并且可以定制自己的日历,然而,有时候,我们的网页上只需要一个简单的日历,迷你但实用,有日程安排的日期高亮显示,可跳转日期,可选择日期等等基本功能都应该具备,而这时 FullCalendar 就显得太过庞大了,所以,就有了我对 glDatePicker 控件的学习. 先看效果:    橘红色表示当前选

  • ASP.NET 中 Button、LinkButton和ImageButton 三种控件的使用详解

    ASP.NET Framework包含三个用于向服务器端提交表单的控件:Button.LinkButton和ImageButton.这三个控件拥有同样的功能,但每种控件的外观界面不同. 本文就带着大家学习如何在页面中使用这三种控件.然后,学习如何关联客户端脚本和服务器端Button控件,以及如何使用Button控件把一个表单传到不是当前页的页面.最后,学习如何处理Button控件的Command事件. 一.使用Button控件 Button控件用来向服务器端提交表单的按钮.例如,代码清单1中的页

  • ASP.NET控件之RadioButtonList详解

    "RadioButtonList"控件表示一个封装了一组单选按钮控件的列表控件. 可以使用两种类型的 ASP.NET 控件将单选按钮添加到网页上:各个"RadioButton"控件或一个"RadioButtonList"控件.这两类控件都允许用户从一小组互相排斥的预定义选项中进行选择.使用这些控件,可定义任意数目的带标签的单选按钮,并将它们水平或垂直排列. 命名空间:System.Web.UI.WebControls 程序集:System.Web

随机推荐