我有一个带有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++;
}
}
我的图表如下所示:
我想要的是系列P01_67和P03_69的DataPoints正确对齐(在系列线的中间),与系列P02_68一样。我有什么想法可以做到这一点?谢谢!
答案 0 :(得分:0)
如果你想让它们对齐,你需要设置这个属性
chart.Series[mID]["DrawSideBySide"] = "false";
但是那时你的系列不会被逐个绘制,而是会重叠 或者您可以尝试从图表中删除空系列。 (然后你需要照顾标签)
例如: -