100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C# DevExpress ChartControl用法总结

C# DevExpress ChartControl用法总结

时间:2019-07-13 14:53:56

相关推荐

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;}

数据源结构:

效果图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。