C# DevExpress ChartControl用法总结

article/2025/11/5 18:25:33

C# DevExpress ChartControl用法总结

₯近期使用C#+DevExpress制作看板时用到过的ChartControl中的相关图表,在此做个记录(未完)。

1、Bar(柱形图)

Series series1 = new Series("日期", ViewType.Bar)       //右上角Legend显示内容,此处是【日期】
{DataSource = 数据库查询结果的DataTable(.DefaultView,可省),ArgumentDataMember = "修改时间",       //横坐标参数ArgumentScaleType =ScaleType.Qualitative,LabelsVisibility = DefaultBoolean.True,
};
series1.ValueDataMembers.AddRange("修改条数");           //纵坐标参数
series1.ValueScaleType =ScaleType.Numerical;
SideBySideBarSeriesLabel label =(SideBySideBarSeriesLabel)series1.Label;
label.Position = BarSeriesLabelPosition.Top; //数值所在Label的显示位置
chartControl1.Series.Add(series1);
((BarSeriesView)series1.View).FillStyle.FillMode= FillMode.Gradient; //省略则非渐变//修改纵/横坐标字体、标签、显隐
((XYDiagram)chartControl1.Diagram).AxisY.Title.Font= new Font("Tahoma", 9);
((XYDiagram)chartControl1.Diagram).AxisX.Title.Font= new Font("Tahoma", 9);
((XYDiagram)chartControl1.Diagram).AxisY.Title.Text= "修改条数";
((XYDiagram)chartControl1.Diagram).AxisX.Title.Text= "修改时间";
((XYDiagram)chartControl1.Diagram).AxisY.Title.Visibility= DefaultBoolean.True;
((XYDiagram)chartControl1.Diagram).AxisX.Title.Visibility= DefaultBoolean.True;

数据源结构:
在这里插入图片描述
效果图:
在这里插入图片描述

2、StackedBar(堆叠柱形图)

List<Series> seriesList = new List<Series>();DataTable dt = 数据源;foreach (DataRow dr in dt.DefaultView.ToTable(true,"问题类型").Rows){Series s = new Series(dr["问题类型"].ToString(), ViewType.StackedBar){LegendTextPattern = dr["问题类型"].ToString(),ArgumentScaleType = ScaleType.Qualitative,};foreach (DataRow dr1 in dt.Select("问题类型='" + dr["问题类型"].ToString() + "'"))s.Points.Add(new SeriesPoint(dr1["年月"].ToString(), int.Parse(dr1["数量"].ToString())));seriesList.Add(s);}foreach (Series sr in seriesList.ToArray())chartControl1.Series.Add(sr);((XYDiagram)chartControl1.Diagram).AxisY.Title.Text = "数量";((XYDiagram)chartControl1.Diagram).AxisX.Title.Text = "年月";((XYDiagram)chartControl1.Diagram).AxisY.Title.Visibility = DefaultBoolean.True;((XYDiagram)chartControl1.Diagram).AxisX.Title.Visibility = DefaultBoolean.True;((XYDiagram)chartControl1.Diagram).AxisY.Title.Font = new Font("Tahoma", 9);((XYDiagram)chartControl1.Diagram).AxisX.Title.Font = new Font("Tahoma", 9);((XYDiagram)chartControl1.Diagram).AxisY.Title.Alignment = StringAlignment.Far;((XYDiagram)chartControl1.Diagram).AxisX.Title.Alignment = StringAlignment.Far;

数据源结构:
在这里插入图片描述
效果图:
在这里插入图片描述

3、Doughnut(环形图)

List<SeriesPoint> spList = new List<SeriesPoint>();
SeriesTitle st = new SeriesTitle();
string[] ss = new string[] { "d1","d2"};
DataTable dt1 = 数据源1;
DataTable dt2 = 数据源2;
for (int i= 0;i < ss.Length; i++)
{chartControl1.Series.Add(new Series(ss[i], ViewType.Doughnut){SeriesPointsSorting = SortingMode.Ascending,SeriesPointsSortingKey = SeriesPointKey.Argument,LegendTextPattern = "{A}:{VP:P2}",});
}
foreach (Series se in chartControl1.Series)
{se.Label.TextPattern = "{A}:{VP:P2}:{V}";((DoughnutSeriesLabel)se.Label).Position = PieSeriesLabelPosition.TwoColumns;((DoughnutSeriesLabel)se.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;((DoughnutSeriesLabel)se.Label).ResolveOverlappingMinIndent = 5;((DoughnutSeriesView)se.View).TotalLabel.Visible = true;((DoughnutSeriesView)se.View).TotalLabel.TextPattern = "{TV}";switch (se.Name){case "d1":st.Text = "d1";foreach(DataRow dr1 in dt1.Rows)se.Points.Add(new SeriesPoint(dr1["主体"].ToString(), dr1["数量"]));((DoughnutSeriesView)se.View).Titles.Add(st);break;case "d2":st.Text = "d2";foreach (DataRow dr2 in dt2.Rows)se.Points.Add(new SeriesPoint(dr2["类型"].ToString(), dr2["数量"]));((DoughnutSeriesView)se.View).Titles.Add(st);break;}}chartControl1.Legend.Visibility = DefaultBoolean.False;

数据源结构:(两个环形图的数据源内容不一样,结构一样)
在这里插入图片描述
效果图:
在这里插入图片描述

4、Gantt(甘特图)

注:【步骤A】为其他步骤的计算基础,【步骤B】为开始步骤,【步骤A】为最终步骤。

chartControl1.DataSource= dt.DefaultView;   
for(int i = 0; i < dt.Rows.Count; i++)
{Series s= new Series(dt.Rows[i]["主体"].ToString(),ViewType.Gantt);s.ValueScaleType= ScaleType.DateTime;s.Points.Add(new SeriesPoint(dt.Columns["步骤A"].ColumnName.ToString(),new DateTime[] { DateTime.Parse(dt.Rows[i]["步骤B"].ToString()),DateTime.Parse(dt.Rows[i]["步骤A"].ToString())}));s.Points.Add(new SeriesPoint(dt.Columns["步骤B"].ColumnName.ToString(),new DateTime[] { DateTime.Parse(dt.Rows[i]["步骤B"].ToString()),DateTime.Parse(dt.Rows[i]["步骤C"].ToString())}));s.Points.Add(new SeriesPoint(dt.Columns["步骤C"].ColumnName.ToString(),new DateTime[] { DateTime.Parse(dt.Rows[i]["步骤C"].ToString()),DateTime.Parse(dt.Rows[i]["步骤D"].ToString())}));s.Points.Add(new SeriesPoint(dt.Columns["步骤D"].ColumnName.ToString(),new DateTime[] { DateTime.Parse(dt.Rows[i]["步骤D"].ToString()),DateTime.Parse(dt.Rows[i]["步骤E"].ToString())}));s.Points.Add(new SeriesPoint(dt.Columns["步骤E"].ColumnName.ToString(),new DateTime[] { DateTime.Parse(dt.Rows[i]["步骤E"].ToString()),DateTime.Parse(dt.Rows[i]["步骤A"].ToString())}));chartControl1.Series.Add(s);((GanttSeriesView)s.View).BarWidth= 0.3;
}

数据源结构:
在这里插入图片描述
效果图:在这里插入图片描述


http://chatgpt.dhexx.cn/article/RCTxatHi.shtml

相关文章

DevExpress chartControl 基本结构说明

chartControl 使用教程及chart数据绑定 DevExpress说明ChartControl 结构series 主要Diagram 主要Chart TitlesLegendsAnnotations DevExpress说明 DevExpress是一个功能强大的跨平台控件库&#xff0c;支持winform、VB、WPF、UWP、asp等等&#xff0c; chart图是软件开发中常…

Dev中ChartControl——属性熟悉与简单应用

图表元素之间的关系&#xff1a; 根据DevExpress帮助文档中描述&#xff1a; 创建点图&#xff1a; 1、创建图表 /// <summary> /// 创建图表 /// </summary> private void CreatChart() {// Create a new chart.图表控件ChartControl pointChart new ChartCon…

运用getParameterNames()方法和getParameterValues()方法获取请求参数名称和内容

一.例子代码&#xff1a; 填写信息页面&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert title here</title> </head> <body> <form action"request_demo04.jsp" m…

使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收

ajax向服务器提交数组参数多了一个中括号 String[] values request.getParameterValues(key); $.post({}) 直接传递数组会导致如下情况 // 使用一下js会导致如图这种情况var ids [];$(input[name"ids"]:checked).each(function(){ids.push($(this).val());})$.po…

springboot 防止xss 和sql 注入 改写 http 请求 getParameter,getParameterValues,getHeader等方法 有点东西

目录 1.springboot 启动类 引入 过滤器配置 2.过滤器 3.XssAndSqlHttpServletRequestWrapper包装器 包装类 4.修改验证登录代码 这里只写了基础的 了解意思即可 5.测试内容 6.测试结果 7.反黑客小介绍&#xff08;黑客大哥们好小弟这没啥大用O(∩_∩)O~&#xff0c;但…

java web中request.getParameterValues()和request.getParameter()异同

JavaWeb中获取表单的多行值采用request.getParameterValues(&#xff09;方法&#xff0c;request.getParameter()方法获取单个值 <!DOCTYPE html> <html lang"zh_CN"> <head><meta charset"UTF-8"><title>Title</title…

Jsp中getParameter、getParameterValues、getParameterNames和getParameterMap用法详解

以下是一个简单的jsp注册页面&#xff0c;从前端提交的数据 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"re…

req.getParameterValues 输出前端乱码

前端页面 <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><title>登录</title> </head> <body> <% page pageEncoding"UTF-8" %> <div style"text-ali…

jsp内置对象request——getParameterValues的使用

文章目录 前言一、getParameterValues是什么二、使用步骤 1.通过表单传入2.使用数组存取读入表单结果总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、getParameterValues是什么 当控件中有多个选项时&#xff0c;要取到所有值可调用该方法&am…

initWithFormat 和stringWithFormat的区别

差别&#xff1a; 1、initWithFormat是实例办法 只能经由过程 NSString* str [[NSString alloc] initWithFormat:&#xff20;"&#xff05;&#xff20;"&#xff0c;&#xff20;"Hello World"] 调用&#xff0c;然则必须手动release来开释内存资料 2、…

C# string Format

使用C#格式化字符串 转载自博客园&#xff0c;原文连接&#xff1a;https://www.cnblogs.com/FlyingBread/archive/2007/01/18/620287.html&#xff0c;向原文作者献上敬意 1 前言 如果你熟悉Microsoft Foundation Classes&#xff08;MFC&#xff09;的CString&#xff0c;…

NSString函数stringWithFormat与stringWithString的比较

我们经常会初始化一些string使用NSString的stringWithString函数 但使用时发现了一个stringWithString的问题&#xff0c;如图 当参数是nil时&#xff0c;stringWithString会crash&#xff0c;所以使用时必须验证参数不是nil 相比较stringWithFormat就不会crash但返回的str也…

stringWithFormat:用法及注意事项

在ObjectiveC中NSString中有一个 stringWithFormat&#xff1a;方法 常见的输出方式&#xff1a; NSString *height; height [NSString stringWithFormat:"Your height is %d feet, %d inches.",5,11]; NSLog("%",height); 输出结果&#xff1a; 2013-04-…

虚拟机VirtualBox下载与安装、安装Ubuntu超详细图文步骤,对一些配置问题也有所写。

对于机器学习和深度学习来说&#xff0c;Linux系统是必不可少的。而我们在只是学习当中一般不会去重装一个Linux系统&#xff0c;而是去使用虚拟机来使用Linux系统。在VMware与VirtualBox这两款虚拟机的体验上&#xff0c;个人更偏向于后者&#xff0c;因为它所占内存更小&…

安装Windowsxp虚拟机

1.打开VMware&#xff0c;选择创建新的虚拟机&#xff0c;微软windows系统选择典型&#xff0c;而linux系统选择自定义&#xff1a; 2.选择稍后安装操作系统&#xff1a; 3.下一步选择相应合适的版本&#xff0c;选择存放位置&#xff1a; 4.选择合适大小的硬盘给虚拟机&…

在虚拟机VMware上安装XP系统

由于最近在学习uc/os-ii操作系统需要用到Borland C 3.1版本的软件&#xff0c;但是由于本人笔记本电脑的系统为Windows7 64位操作系统&#xff0c;与BC3.1不兼容&#xff0c;又不想直接换成XP系统&#xff0c;所以想在虚拟机VMware上安装XP&#xff0c;刚开始在网上搜了很多教程…

VirtualBox安装

1、VirtualBox安装 运行安装程序&#xff0c;一直下一步即可。如果不想安装到C盘&#xff0c;可以自己选盘符。 注意&#xff1a;软件开发安装所有程序时&#xff0c;不要安装到有中文或特殊符号的路径下。 2、安装操作系统 点击新建&#xff0c;弹出如下对话框 名称&…

VirtualBox虚拟机安装

一、宿主机(物理机)要求 宿主机建议内存大于4G&#xff0c;cpu至少4个 二、下载virtualBox https://www.virtualbox.org/wiki/Downloads 下载的安装包&#xff0c;默认安装即可(也可指定目录安装) 三、下载系统镜像 可以参考另外一篇各种ISO镜像 四、VirtualBox安装虚拟…

使用VirtualBox安装Ubuntu系统

一、下载VirtualBox软件安装包和Ubuntu系统镜像 1.1 下载VirtualBox安装包 点我进入VirtualBox官网下载安装包。 1.2 下载ubuntu20.04系统镜像 我使用的是国内清华大学的镜像&#xff0c;点我进行镜像选择和下载&#xff0c;这里我选择的是64位的系统镜像。 二、安装Vi…

如何在vmware workstation 上安装xp系统

准备&#xff1a;系统ISO镜像&#xff0c;可去MSDN下载。**Vmware workstation软件** 安装过程&#xff1a; 1&#xff0c;打开vmware软件&#xff0c;点击“创建新的虚拟机” 2&#xff0c;在窗口中选择典型&#xff0c;然后下一步。 3&#xff0c;选择“稍后安装操作系统”…