我想生成像link中的栏:
然而,我收到此错误:
以下是我使用的代码:
// AxisY
chart1.ChartAreas.Add(CA);
chart1.ChartAreas[1].AxisY.MajorGrid.Enabled = false;
chart1.ChartAreas[1].AxisY.Interval = 1;
// AxisX
chart1.ChartAreas[1].AxisX.ScrollBar.Enabled = true;
chart1.ChartAreas[1].AxisX.ScaleView.Zoomable = true;
chart1.ChartAreas[1].AxisX.MajorGrid.Enabled = false;
chart1.ChartAreas[1].AxisX.LabelStyle.Format = "yyyy-MM-dd hh:mm:ss";
chart1.ChartAreas[1].AxisX.Interval = 0;
chart1.ChartAreas[1].AxisX.IntervalType = DateTimeIntervalType.Years;
minDate = new DateTime(2016, 01, 01, 00, 00, 00, 000);
maxDate = new DateTime(2016, 12, 01, 00, 00, 00, 000); // or DateTime.Now;
chart1.ChartAreas[1].Axes[0].Enabled = AxisEnabled.False;
chart1.ChartAreas[1].Axes[1].Enabled = AxisEnabled.False;
chart1.ChartAreas[1].BackColor = Color.Transparent;
chart1.ChartAreas[1].Position.Height = 100;
chart1.ChartAreas[1].Position.Width = 100;
chart1.ChartAreas[1].InnerPlotPosition.Height = 90;
chart1.ChartAreas[1].InnerPlotPosition.Width = 80;
chart1.ChartAreas[1].InnerPlotPosition.X = 10;
var series2 = new Series
{
Name = "S2",
Color = Color.Black,
ChartType = SeriesChartType.RangeBar,
YValueType = ChartValueType.Auto,
XValueType = ChartValueType.Auto
};
var values2 = new DateTime[3];
values2[0] = minDate.AddMonths(2);
values2[1] = minDate.AddMonths(4);
values2[2] = minDate.AddMonths(6);
series2.Points.AddXY(1, values2[1], values2[2]);
series2["PointWidth"] = ".25";
chart1.Series.Add(series2);
底轴是日期时间。左轴是固定的,并且有单词作为标签。我需要显示数据的差距。
答案 0 :(得分:2)
是的,乍一看这看起来很奇怪,错误信息并没有指向正确的方向。
原因是您尝试在>> 系列中添加点,然后将系列添加到图表中。
除了条形图表外, '0xAA'
不能与任何其他图表类型结合使用。
因此(?)图表无法检查点是否实际以有效方式添加,而不是这样说它声称您的系列只接受一个y值。
解决方案:只需将RangeBar
添加到series2
之前添加任何Chart
,一切都很好..