chartcontrol的用法总结

用chartcontrol用了一个星期,想把这个星期的劳动成果记录一下:

chartcontrol是devexpress控件库中很好用的一个图表显示控件,功能很强大。我下面从简单的介绍起:

1.显示二维表

二维表的意思是只有两列,这是最方便的。而且我们以柱状图为例:

            chartControl1.Series.Clear();          //清除系列
            Series serPici = new Series(" 表明", ViewType.Bar);        //新建系列                                                                      
            serPici.DataSource = data;                                                    //绑定数据源
            serPici.ArgumentDataMember = "检查类型";                     //指定X轴绑定列
            serPici.ArgumentScaleType = ScaleType.Qualitative;     //指定X轴坐标以定性方式表示
            serPici.ValueDataMembers.AddRange(new string[] { "数量" });       //指定Y轴绑定列  
            serPici.ValueScaleType = ScaleType.Numerical;                               //指定Y轴以数字方式标记
            //serPici.LegendText = "批次量";
            chartControl1.Series.Add(serPici);        //添加系列

            //设置X轴和Y轴,可以不设置
            ((XYDiagram)chartControl1.Diagram).AxisY.Title.Font = new Font("Tahoma", 10);
            ((XYDiagram)chartControl1.Diagram).AxisY.Title.TextColor = System.Drawing.Color.Red;
            ((XYDiagram)chartControl1.Diagram).AxisY.Title.Text = "数量";
            //((XYDiagram)chartControl1.Diagram).AxisY.Title.Visible = true;
            ((XYDiagram)chartControl1.Diagram).AxisY.Title.Visible = true;
            ((XYDiagram)chartControl1.Diagram).AxisX.Title.Text = "检查类型";
            ((XYDiagram)chartControl1.Diagram).AxisX.Title.Visible = true;

            //设置图例的位置
            chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right;
            chartControl1.Legend.AlignmentVertical = LegendAlignmentVertical.Top;

2.显示三维表

如果你的数据表含有三列,这时你就需要采用下面的方法了。

                chartControl1.Series.Clear();
                //Series serPici = new Series("Bar", ViewType.Bar);
                //serPici.DataSource = data;
                chartControl1.DataSource = data;
                chartControl1.SeriesDataMember = "检查类型";
                chartControl1.SeriesTemplate.ArgumentDataMember = "报告医师";
                chartControl1.SeriesTemplate.ValueDataMembers.AddRange(new string[1]{"数量"});
这时你也可以如上设置X轴和Y轴的标题,显示内容等。但是注意这个模板不能用于二维表的显示,比如你可能想要把检查类型那行去除显示二维表,试验结果证明,这时行不通的。

这里要特别提醒的是:如果在代码中存在数据源绑定变换,最好加上

 chartControl1.BeginInit();

 chartControl1.EndInit();

这样确保数据源切换能够被chartcontrol识别并及时显示。

3.四维表

四维表也是可以显示的。这时可能把表格的类型设置为stackedbar。

这个可以使用sidebysidebar,比如说四列为:报告医师、检查类型、报告质量、数量。则可根据报告质量和检查类型进行循环,将两列合为一列作为series的name即可。

总结下:对于devexpress的控件,我也才开始了解。它有个专门的论坛上有中文文档,需要静下心来去研究。而且它的国外官网有support页面,中午至晚上都可以留言,回复还挺快的。关于chartcontrol,虽然我写了这么多,但还只是皮毛。如多坐标轴的设置,pane的设置等等。我研究出成果再和大家分享。




你可能感兴趣的:(C#)