首页 > 编程语言 >C# chart控件实现扇形图的一种方式

C# chart控件实现扇形图的一种方式

时间:2023-08-10 16:00:16浏览次数:44  
标签:count 控件 item C# chart ht int value key

 

/// <summary>
/// 绘制扇形图
/// </summary>
/// <param name="count"></param>
private void PainAlam(int count)
{
    Hashtable ht = new Hashtable();
    //第一次遍历所有警报,存入到哈希表里面,value设置为1。value为已出现报警的次数
    for (int i = 0; i < count; i++)
    {
        var item = DgvReportData.Rows[i].Cells["alarmname"].Value; //每次访问DgvReportData第i行第alarmname的列的值
        if (ht.Contains(item))
        {
            //如果该警报已经存在则改变对应的value值 + 1
            int tmp = (int)ht[key: item];
            ht[item] = 1 + tmp;
        }
        else
            ht.Add(item, 1);
    }

    string[] x = new string[count];
    double[] y = new double[count];

    //第二次遍历哈希表,给数据源赋值。value/count就是报警出现次数的百分比
    ICollection key = ht.Keys;
    int sub = 0;
    foreach (string item in key)
    {
        int value = (int)ht[key: item];
        y[sub] = value;
        string percent = ((value*100)/(count)).ToString();
        x[sub] = item + " 占 " + percent + "%";
        sub++;
    }
    //将两个数据源绑定到chart1
    chtAlam.Series["Series1"].Points.DataBindXY(x, y);
}

 

 

标签:count,控件,item,C#,chart,ht,int,value,key
From: https://www.cnblogs.com/panyyds/p/17620588.html

相关文章

  • C# WEB 服务
     1.WEB服务的添加   右键项目->添加->服务引用->   地址中输入你要添加的WEB服务地址,我这里是http://www.webxml.com.cn/WebServices/WeatherWebService.asmx   ->确定(命名默认)2.接口使用   在项目文件中找到默认命名的文件,在对应项目中using空间......
  • Docker安装
    0卸载dockeryumremovedockerdocker-commondocker-selinuxdocker-enginerm-rf/var/lib/docker1yum包更新到最新sudoyumupdate2安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的sudoyuminstall-yyum-utilsdevi......
  • SpringCloud初识
    认识微服务单体架构将业务的所有功能集中在一个项目中开发,打成一个包部署。优点:架构简单部署成本低缺点:耦合度高(维护困难、升级困难)分布式架构根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。优点:降低服务耦合有利于服务升级和拓展缺......
  • CMU 15445 spring - project 1 Buffer Pool实验笔记
    前排提醒本项目需要在linux/mac环境下进行开发,如果是windows最好是整个linux的环境,比如云服务器、虚拟机、wsl等。整个课程需要仔细看文档,包括bustub的readme,每篇project的描述。整个课程需要仔细看文档,包括bustub的readme,每篇project的描述。整个课程需要仔细看文档,包括bustu......
  • C# 使用另一个项目中的dll类库文件
     1.在项目资源管理器中找到引用,找对对应类库路径。2.复制该类库文件到另一个项目的Debug文件下。3.同样,在项目资源管理器中找到引用,右击添加引用在本项目Debug目录下找到要添加的类库文件。   ......
  • CTFer成长记录——CTF之Web专题·攻防世界—lottery
    一、题目链接https://adworld.xctf.org.cn/challenges/list?rwNmOdr=1691651594927二、解法步骤  打开网页,这是一个买彩票换flag的网站。题目附件提供了源码:  在网站上探索一番,发现买flag需要9990000R,获得资金的方式就通过buy功能买彩票。  那么我们随便输入一个数字,......
  • gcc多版本共存
    有时候编译项目时会遇到需要特定编译器版本的情况,可以使用update-alternatives来解决这个问题。以gcc9与gcc11共存为例。首先查看本机已安装的编译器版本,可以看到已安装版本为gcc-11ls/usr/bin/gcc*安装需要的gcc版本,这里安装gcc-9sudoaptinstallgcc-9安装完成后使用......
  • Eolink 出席 QECon 大会,引领「AI+API」技术的革新浪潮
    7月28日-29日,第八届QECon质量效能大会在北京成功召开。大会聚焦“数生智慧,高质量发展新引擎”,深入探讨如何利用数字化和智能化技术推动软件质量的发展,进而为高质量的经济发展提供新的引擎。作为国内API全生命周期解决方案的领军者,Eolink受邀出席本次大会。会上,EolinkCEO......
  • manacher(马拉车)算法C++详解
    马拉车的定义马拉车本质是对中心扩展法(暴力算法)的优化。马拉车是干什么的Manacher算法帮助我们在给定的字符串中找到最长的回文子串。为了简单起见,我们先只处理有奇数个字符的字符串,关于偶数个字符的字符串,在文章最后会给出解法。我们的处理思路和暴力算法基本一致,那就是从左......
  • Qt CUDA混合编程BUG(一)
    在QT中进行CUDA编程,CUDA库与其他外部库冲突,debug失败问题描述在QT中进行CUDA编程,单独使用CUDA编程时并未出现难以解决的问题,但当我讲CUDA处理的部分,加入已搭建完毕一项较大的QT项目工程时,CUDA的lib库与项目使用到的其他外部lib库文件出现冲突,导致debug失败。可能出现多种错......