chart控件使x轴标签全部显示

在vs2010中使用chart控件时,x轴如果标签过多,运行时图表默认只能显示其中的一部分,如图:


我们可以通过设置,使得x轴标签全部显示:

1、通过chart控件属性,找到“ChartAreas集合”如图,并且点开

2、在ChartAreas1属性中找到“Axes集合”,并点开


3、左侧选中x轴“X axis”,在其右边属性“标签”下找到labelAutoFitStyle,将默认选择的全部删掉,此时为其属性为“none”;

将“LabelStyle”下标签间隔大小“Interval”从“Auto”改为“1” 。此时运行已完成x轴标签全部显示。


去掉x轴网格:chart属性->“ChartAreas集合”->“Axes集合”->“X axis”->“MajorGrid”将enable设为false即可。

确定保存修改。此时运行效果如下:



chart数据来源:

DataTable dsChart=WinGridControl.DataSource;


 显示chart:

 private void btnStatistics_Click(object sender, EventArgs e)
        {
            if (dsChart == null) return;
            showChart(dsChart);
        }
        /// 展示图表
        private void showChart(DataSet ds)
        {
            chartData.Series[0].Points.Clear();
            chartData.Series[1].Points.Clear();
            if (FormAssistant.IsDsNull(ds)) return;
            const double zeroMore = 0.1;
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                string type = ds.Tables[0].Rows[i]["ABA023"].ToString();
                double ACA001 = SmartConvert.StringToDouble(ds.Tables[0].Rows[i][1].ToString());
                if (ACA001.Equals(0.0D))
                {//数值为0 加0.1 以便查看
                    ACA001 += zeroMore;
                }
                double NUM = SmartConvert.StringToDouble(ds.Tables[0].Rows[i][2].ToString());
                if (NUM.Equals(0.0D))
                {//数值为0 加0.1 以便查看
                    NUM += zeroMore;
                }
                chartData.Series[0].Points.AddXY(type, ACA001);
                chartData.Series[1].Points.AddXY(type,NUM);
                chartData.Series[0].IsValueShownAsLabel = true;
                chartData.Series[1].IsValueShownAsLabel = true;
            }
        }


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