当前位置: 首页 > article >正文

C# DevExpress ChartControl用法总结

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://www.lryc.cn/news/2420886.html

相关文章:

  • RichEdit那点儿事(一)
  • DAY1-声速、声压与声强
  • 记录点有意义的事情---csdn数据库被黑(原创)
  • patch 补丁文件制作
  • 修改固态硬盘的物理序列号_买固态怕踩坑?收下这些软件,轻松鉴别好坏
  • 传奇翎风引擎单机架设教程
  • QQ强制视频聊天
  • Moto官方GMS谷歌服务套件For XT800+下载和使用教程
  • 经典SQL语句大全
  • 提升电脑开机速度
  • 推荐开源项目:YUIDoc——JavaScript文档生成引擎
  • socks5原理
  • 课程设计-基于Springboot+Vue的在线考试系统的设计与实现(源码+LW+包运行)
  • Linux入门实验3
  • JAVA转.NET——day03、下
  • Stanford Parser句法分析器
  • svn安装及使用
  • Linux查看当前时间
  • 《隐秘的角落》结局你真的看懂了吗?(细思极恐)
  • 计算机主板一直滴滴响,主板报警声大全_主板一直滴滴滴短响含义详解
  • 花指令
  • kube operator部署kubernetes集群
  • Animation动画——ObjectAnimator基本使用
  • [C++学习日记]-11-抽象、封装、继承和多态
  • C盘根目录下---系统文件详解
  • 360和腾讯QQ的那场战争!
  • Portal游戏的实现理论分析
  • 2024年Android最新Android系统在超级终端下必会的命令大全,我的腾讯安卓面试经历分享
  • Linux服务和守护进程管理:systemctl、service等命令的使用教程和技巧
  • VC++6.0、VS2003、vs2005、vs2008程序依赖DLL