DevXpress控件: 第二篇--将绘图进行到底: Charter控件(附图)
2010-12-01 11:55
246 查看
一. 2D
1. 散点图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/3bb8149cb0fd88c40fc9340408ba6e0b.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/d6a7f31495f1d95791f16ab587363c0b.gif)
Code:
3. 柱状图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/c28534c95a4a85af760b2d9129cbf811.gif)
4. 饼图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/38dcb0f952195d9788e42de6ca35f388.gif)
5. 任务进度图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/9fd164bc1f708fcd77e35e428a622d47.gif)
Code:
二. 3D
1. 堆叠立柱体
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/2afcf37123c0988e8cb22727a083baab.gif)
Code:
2. 饼形3D图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/10892359bbc7210d877a4d71c32ca3af.gif)
3. 分层区图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/a40c5101354d3f4fdb73eb7b68d791d5.gif)
4. 堆叠区图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/83fdc023b71de0d386a439a32eb12f98.gif)
5. 曼哈顿三维
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/c58ef945a5197bb847ce6af894e00b11.gif)
Code:
6.梯线体
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/e20cebef2dc9081a6868ae852847706f.gif)
说明: 1. 此控件绘图效果不错, 效率也不慢
2. 部分图例没有附代码, 绘制过程大同小异, 还有很多图例没有加上,
3. 如有技术帮助或交流请你博主联系 MSN: ziyifly34@hotmail.com; QQ: 915571300 (子逸)
4. 版权归 子逸 (博客园)所有;转载请注明出处
DevXpress控件: 第二篇--将绘图进行到底: Charter控件(附图)
1. 散点图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/3bb8149cb0fd88c40fc9340408ba6e0b.gif)
散点图--CreatedBy FQGUO this.xtraTabControl1.TabPages.Add("普通散点图"); ChartControl pointChart = new ChartControl(); Series series1 = new Series("序列一", ViewType.Point); series1.ArgumentScaleType = ScaleType.Numerical; ((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle; //加点 series1.Points.Add(new SeriesPoint(1, new double[] { 10 })); series1.Points.Add(new SeriesPoint(2, new double[] { 12 })); series1.Points.Add(new SeriesPoint(3, new double[] { 14 })); series1.Points.Add(new SeriesPoint(4, new double[] { 17 })); series1.Points.Add(new SeriesPoint(5, new double[] { 21 })); series1.Points.Add(new SeriesPoint(6, new double[] { 26 })); series1.Points.Add(new SeriesPoint(7, new double[] { 29 })); series1.Points.Add(new SeriesPoint(8, new double[] { 30 })); Series series2 = new Series("序列二", ViewType.Point); series2.ArgumentScaleType = ScaleType.Numerical; ((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross; //加点 series2.Points.Add(new SeriesPoint(1, new double[] { 15 })); series2.Points.Add(new SeriesPoint(2, new double[] { 18 })); series2.Points.Add(new SeriesPoint(3, new double[] { 25 })); series2.Points.Add(new SeriesPoint(4, new double[] { 33 })); series2.Points.Add(new SeriesPoint(5, new double[] { 35 })); series2.Points.Add(new SeriesPoint(6, new double[] { 41 })); series2.Points.Add(new SeriesPoint(7, new double[] { 44 })); series2.Points.Add(new SeriesPoint(8, new double[] { 50 })); pointChart.Series.Add(series1); pointChart.Series.Add(series2); // 显示标签. pointChart.Legend.Visible = true; // 不允许旋转90度. ((XYDiagram)pointChart.Diagram).Rotated = false; ; //加入到tab中 pointChart.Dock = DockStyle.Fill; pointChart.Size = new System.Drawing.Size(400, 250); int tabPagesCount = this.xtraTabControl1.TabPages.Count - 1; this.xtraTabControl1.TabPages[tabPagesCount].Controls.Add(pointChart); this.xtraTabControl1.SelectedTabPageIndex = tabPagesCount;
![]()
2. 折线图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/d6a7f31495f1d95791f16ab587363c0b.gif)
Code:
![]()
折线图--CreateByFQGUO this.xtraTabControl1.TabPages.Add("普通折线图"); ChartControl lineChart = new ChartControl(); Series series1 = new Series("通过人数", ViewType.Line); series1.ArgumentScaleType = ScaleType.Numerical; ((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Triangle; ((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Dash; series1.Points.Add(new SeriesPoint(1, new double[] { 2 })); series1.Points.Add(new SeriesPoint(2, new double[] { 3 })); series1.Points.Add(new SeriesPoint(3, new double[] { 4 })); series1.Points.Add(new SeriesPoint(4, new double[] { 6 })); series1.Points.Add(new SeriesPoint(5, new double[] { 8 })); series1.Points.Add(new SeriesPoint(6, new double[] { 10 })); series1.Points.Add(new SeriesPoint(7, new double[] { 12 })); series1.Points.Add(new SeriesPoint(8, new double[] { 15 })); Series series2 = new Series("报名人数", ViewType.Line); series2.ArgumentScaleType = ScaleType.Numerical; ((LineSeriesView)series2.View).LineMarkerOptions.Kind = MarkerKind.Cross; ((LineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.DashDotDot; series2.Points.Add(new SeriesPoint(1, new double[] { 3 })); series2.Points.Add(new SeriesPoint(2, new double[] { 5 })); series2.Points.Add(new SeriesPoint(3, new double[] { 6 })); series2.Points.Add(new SeriesPoint(4, new double[] { 7 })); series2.Points.Add(new SeriesPoint(5, new double[] { 11 })); series2.Points.Add(new SeriesPoint(6, new double[] { 13 })); series2.Points.Add(new SeriesPoint(7, new double[] { 15 })); series2.Points.Add(new SeriesPoint(8, new double[] { 18 })); lineChart.Series.Add(series1); lineChart.Series.Add(series2); lineChart.Legend.Visible = true; ((XYDiagram)lineChart.Diagram).Rotated = false; lineChart.Dock = DockStyle.Fill; lineChart.Size = new System.Drawing.Size(400, 250); this.Controls.Add(lineChart); int tabPagesCount = this.xtraTabControl1.TabPages.Count - 1; this.xtraTabControl1.TabPages[tabPagesCount].Controls.Add(lineChart); this.xtraTabControl1.SelectedTabPageIndex = tabPagesCount;
3. 柱状图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/c28534c95a4a85af760b2d9129cbf811.gif)
4. 饼图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/38dcb0f952195d9788e42de6ca35f388.gif)
5. 任务进度图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/9fd164bc1f708fcd77e35e428a622d47.gif)
Code:
![]()
CreatedBy -FQGUO this.xtraTabControl1.TabPages.Add("任务进度图"); ChartControl ganttChart = new ChartControl(); Series series1 = new Series("计划", ViewType.Gantt); ganttChart.Series.Add(series1); series1.Label.Visible = false; ((GanttSeriesView)series1.View).BarWidth = 0.6; series1.ArgumentScaleType = ScaleType.Qualitative; series1.ValueScaleType = ScaleType.DateTime; series1.Points.Add(new SeriesPoint("需求分析", new DateTime[] { new DateTime(2008, 10, 16), new DateTime(2008, 10, 23) })); series1.Points.Add(new SeriesPoint("工程架构", new DateTime[] { new DateTime(2008, 10, 23), new DateTime(2008, 10, 28) })); series1.Points.Add(new SeriesPoint("开发测试", new DateTime[] { new DateTime(2008, 10, 28), new DateTime(2008, 11, 26) })); series1.Points.Add(new SeriesPoint("部署上线", new DateTime[] { new DateTime(2008, 11, 26), new DateTime(2008, 12, 10) })); ((GanttSeriesView)series1.View).LinkOptions.ArrowHeight = 7; ((GanttSeriesView)series1.View).LinkOptions.ArrowWidth = 11; for (int i = 1; i < series1.Points.Count; i++) { series1.Points[i].Relations.Add(series1.Points[i - 1]); } Series series2 = new Series("执行", ViewType.Gantt); ganttChart.Series.Add(series2); series2.Label.Visible = false; ((GanttSeriesView)series2.View).BarWidth = 0.3; series2.ArgumentScaleType = ScaleType.Qualitative; series2.ValueScaleType = ScaleType.DateTime; series2.Points.Add(new SeriesPoint("需求分析", new DateTime[] { new DateTime(2008, 10, 16), new DateTime(2008, 10, 23) })); series2.Points.Add(new SeriesPoint("工程架构", new DateTime[] { new DateTime(2008, 10, 23), new DateTime(2008, 10, 26) })); series2.Points.Add(new SeriesPoint("开发测试", new DateTime[] { new DateTime(2008, 10, 26), new DateTime(2008, 11, 10) })); series2.Points.Add(new SeriesPoint("部署上线", new DateTime[] { new DateTime(2008, 11, 10), new DateTime(2008, 12, 1) })); ConstantLine progress = new ConstantLine("当前进度", new DateTime(2008, 11,28 )); progress.ShowInLegend = false; progress.Title.Alignment = ConstantLineTitleAlignment.Far; ((GanttDiagram)ganttChart.Diagram).AxisY.ConstantLines.Add(progress); ChartTitle title = new ChartTitle(); title.Text ="任务进度表--Created By fqguo(子逸)"; ganttChart.Titles.Add(title); ganttChart.Dock = DockStyle.Fill; ganttChart.Size = new System.Drawing.Size(500, 300); ganttChart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right; ((GanttDiagram)ganttChart.Diagram).AxisY.Interlaced = true; ((GanttDiagram)ganttChart.Diagram).AxisY.GridSpacing = 10; ((GanttDiagram)ganttChart.Diagram).AxisY.Label.Angle = -30; ((GanttDiagram)ganttChart.Diagram).AxisY.Label.Antialiasing = true; ((GanttDiagram)ganttChart.Diagram).AxisY.DateTimeOptions.Format = DateTimeFormat.MonthAndDay; int tabPagesCount = this.xtraTabControl1.TabPages.Count - 1; this.xtraTabControl1.TabPages[tabPagesCount].Controls.Add(ganttChart); this.xtraTabControl1.SelectedTabPageIndex = tabPagesCount;
二. 3D
1. 堆叠立柱体
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/2afcf37123c0988e8cb22727a083baab.gif)
Code:
![]()
堆叠立柱体--CreatedByFQGUO this.xtraTabControl1.TabPages.Add("堆叠立柱体"); ChartControl barChart = new ChartControl(); Series series1 = new Series("通过人数", ViewType.StackedBar3D); series1.Points.Add(new SeriesPoint("I", new double[] { 10 })); series1.Points.Add(new SeriesPoint("II", new double[] { 20 })); series1.Points.Add(new SeriesPoint("III", new double[] { 40 })); series1.Points.Add(new SeriesPoint("IV", new double[] { 60 })); Series series2 = new Series("报名人数", ViewType.StackedBar3D); series2.Points.Add(new SeriesPoint("I", new double[] { 15 })); series2.Points.Add(new SeriesPoint("II", new double[] { 25 })); series2.Points.Add(new SeriesPoint("III", new double[] { 35 })); series2.Points.Add(new SeriesPoint("IV", new double[] { 45 })); barChart.Series.Add(series2); barChart.Series.Add(series1); barChart.Legend.Visible = true; barChart.Dock = DockStyle.Fill; barChart.Size = new System.Drawing.Size(400, 250); int tabPagesCount = this.xtraTabControl1.TabPages.Count - 1; this.xtraTabControl1.TabPages[tabPagesCount].Controls.Add(barChart); this.xtraTabControl1.SelectedTabPageIndex = tabPagesCount;
2. 饼形3D图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/10892359bbc7210d877a4d71c32ca3af.gif)
3. 分层区图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/a40c5101354d3f4fdb73eb7b68d791d5.gif)
4. 堆叠区图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/83fdc023b71de0d386a439a32eb12f98.gif)
5. 曼哈顿三维
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/c58ef945a5197bb847ce6af894e00b11.gif)
Code:
![]()
曼哈顿三维--CreateByFQUOthis.xtraTabControl1.TabPages.Add(" 曼哈顿三维"); ChartControl mhtChart = new ChartControl(); Series series1 = new Series("2007", ViewType.ManhattanBar); series1.ArgumentScaleType = ScaleType.Numerical; series1.Points.Add(new SeriesPoint(1, new double[] { 2 })); series1.Points.Add(new SeriesPoint(2, new double[] { 5 })); series1.Points.Add(new SeriesPoint(3, new double[] { 6 })); series1.Points.Add(new SeriesPoint(4, new double[] { 7 })); series1.Points.Add(new SeriesPoint(5, new double[] { 7 })); Series series2 = new Series("2008", ViewType.ManhattanBar); series2.ArgumentScaleType = ScaleType.Numerical; series2.Points.Add(new SeriesPoint(1, new double[] { 4 })); series2.Points.Add(new SeriesPoint(2, new double[] { 6 })); series2.Points.Add(new SeriesPoint(3, new double[] { 7 })); series2.Points.Add(new SeriesPoint(4, new double[] { 8 })); series2.Points.Add(new SeriesPoint(5, new double[] { 9 })); Series series3 = new Series("2008", ViewType.ManhattanBar); series3.ArgumentScaleType = ScaleType.Numerical; series3.Points.Add(new SeriesPoint(1, new double[] { 1 })); series3.Points.Add(new SeriesPoint(2, new double[] { 2 })); series3.Points.Add(new SeriesPoint(3, new double[] { 3 })); series3.Points.Add(new SeriesPoint(4, new double[] { 4 })); series3.Points.Add(new SeriesPoint(5, new double[] { 5 })); mhtChart.Series.Add(series2); mhtChart.Series.Add(series1); mhtChart.Series.Add(series3); mhtChart.Legend.Visible = true; ((XYDiagram3D)mhtChart.Diagram).RuntimeRotation = true; mhtChart.Dock = DockStyle.Fill; mhtChart.Size = new System.Drawing.Size(400, 250); int tabPagesCount = this.xtraTabControl1.TabPages.Count - 1; this.xtraTabControl1.TabPages[tabPagesCount].Controls.Add(mhtChart); this.xtraTabControl1.SelectedTabPageIndex = tabPagesCount;
6.梯线体
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/e20cebef2dc9081a6868ae852847706f.gif)
说明: 1. 此控件绘图效果不错, 效率也不慢
2. 部分图例没有附代码, 绘制过程大同小异, 还有很多图例没有加上,
3. 如有技术帮助或交流请你博主联系 MSN: ziyifly34@hotmail.com; QQ: 915571300 (子逸)
4. 版权归 子逸 (博客园)所有;转载请注明出处
DevXpress控件: 第二篇--将绘图进行到底: Charter控件(附图)
相关文章推荐
- DevXpress控件: 第二篇--将绘图进行到底: Charter控件(附图)
- DevXpress控件: 第二篇--将绘图进行到底: Charter控件(附图)
- DevXpress控件: 第二篇--将绘图进行到底: Charter控件(附图)
- DevXpress控件: 第三篇: 将 父子 关系进行到底--TreeList 控件
- DevXpress 控件: 第一篇: 将 Master_Details 关系进行到底--XtraPivotGridControl控件
- WPF学习05:2D绘图 使用Transform进行控件变形
- C#版本拉格朗日插值算法 — 用于MsChart 绘图控件进行插值算法绘图。
- .Net2.0中通过委托和事件进行线程安全的控件访问
- 怎样将CorelDRAW中绘图窗口进行平移和滚动
- 多比图形控件教程:基于Flex/Javascript的网页绘图控件
- 如何使用WPF图表控件Chart FX进行数据转换
- ASP.NET利用反射进行物体与控件之间绑定
- 两个webpart控件之间进行通信
- (原创)怎样在页面和页面的用户控件进行交互
- C#下采用双缓冲技术进行GDI+绘图的方法
- 使用Java的Graphics类进行绘图的方法详解
- 超女,将“苦肉计”进行到底?
- 使用Easyui pagination分页控件进行分页
- VCL控件组件大都应该重载TWinControl的虚函数WndProc来进行处理窗口消息的工作
- 教你只用一个Validator对多个控件进行验证