MSChart WinForms图表控件:如何在RangeBar图表上将DataPoints与Series标签对齐?

时间:2012-03-04 05:58:59

标签: c# winforms charts mschart

我有一个带有RangeBar类型图表的win表格图表控件,我在其中添加了Series和DataPoints,如下所示:

 public void AddSeries(List<Machine> machines)
    {
        string mID="";
        chart.ChartAreas[0].AxisX.Minimum =0;
        chart.ChartAreas[0].AxisX.Maximum =machines.Count+1;           
        int x = 1;
        foreach (var m in machines)
        {
            if (x < 4)
            {
                mID = m.idMachine.ToString();
                chart.Series.Add(new Series(mID));
                chart.Series[mID].YValuesPerPoint = 2;
                chart.Series[mID].Color = Color.Magenta;
                chart.Series[mID].ChartType = SeriesChartType.RangeBar;
                chart.Series[mID]["PointWidth"] = "0.7";
                chart.Series[mID].IsVisibleInLegend = false;
                chart.Series[mID].AxisLabel = m.MachineNo + "_" + m.idMachine;
                chart.Series[mID]["DrawSideBySide"] = "true";            

                DateTime dt = new DateTime(2010, 1, 6); 
                chart.Series[mID].Points.AddXY(x, dt.ToOADate(), dt.AddDays(1).ToOADate());
            }
            x++;
        }
    }

我的图表如下所示:

enter image description here

我想要的是系列P01_67和P03_69的DataPoints正确对齐(在系列线的中间),与系列P02_68一样。我有什么想法可以做到这一点?谢谢!

1 个答案:

答案 0 :(得分:0)

如果你想让它们对齐,你需要设置这个属性

chart.Series[mID]["DrawSideBySide"] = "false";  

但是那时你的系列不会被逐个绘制,而是会重叠 或者您可以尝试从图表中删除空系列。 (然后你需要照顾标签)

例如: -

Check Here for more information