MS图表中的范围栏

时间:2016-11-10 15:58:26

标签: c# winforms range mschart series

我想生成像link中的栏: enter image description here

然而,我收到此错误:

enter image description here

以下是我使用的代码:

        // 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);

底轴是日期时间。左轴是固定的,并且有单词作为标签。我需要显示数据的差距。

1 个答案:

答案 0 :(得分:2)

是的,乍一看这看起来很奇怪,错误信息并没有指向正确的方向。

原因是您尝试在> 系列中添加点,然后将系列添加到图表中。

除了条形图表外,

'0xAA'不能与任何其他图表类型结合使用。

因此(?)图表无法检查点是否实际以有效方式添加,而不是这样说它声称您的系列只接受一个y值。

解决方案:只需将RangeBar添加到series2 之前添加任何Chart,一切都很好..