使用Windows图表格式在彼此下方添加两个图表

时间:2016-11-23 19:00:43

标签: c# winforms charts

我可以轻松创建两个单独的图表,但我想将它们添加到一个图表中。一个在顶部,另一个在它下面。那我怎么能这样做呢?

这是我到目前为止尝试过的代码,但它只在顶部绘制了一个图表。

// Chart chart1 = new Chart();
            Chart chart1 = new Chart()
            {
                Width = 500,
                Height = 1000
            };


            chart1.Legends[0].Docking = Docking.Bottom;
            ChartArea chartArea = new ChartArea() { Name = "ChartArea0" };
            //Remove X-axis grid lines
            chartArea.AxisX.MajorGrid.LineWidth = 0;
            //Remove Y-axis grid lines
            chartArea.AxisY.MajorGrid.LineWidth = 0;
            //Chart Area Back Color

            chart1.ChartAreas.Add(chartArea);

            chart1.Palette = ChartColorPalette.SeaGreen;

            // Set title.
            chart1.Titles.Add(" GIS");

            // Add series.
            for (int i = 0; i < seriesEXpArray.Length; i++)
            {
                // Add series.
                Series series = chart1.Series.Add(seriesEXpArray[i]);
                series.ChartArea= "ChartArea0";
                // Add point.
                series.Points.Add(ExppointsArray[i]);
            }

             chartArea = new ChartArea() { Name = "ChartArea1" };
            //Remove X-axis grid lines
            chartArea.AxisX.MajorGrid.LineWidth = 0;
            //Remove Y-axis grid lines
            chartArea.AxisY.MajorGrid.LineWidth = 0;
            //Chart Area Back Color

            chart1.ChartAreas.Add(chartArea);

            // Add series.
            for (int i = 0; i < seriesUserCommenArray.Length; i++)
            {
                // Add series.
                Series series = chart1.Series.Add(seriesUserCommenArray[i]);
                series.ChartArea = "ChartArea1";
                // Add point.
                series.Points.Add(UserCommentpointsArray[i]);
            }

1 个答案:

答案 0 :(得分:1)

您的表单很可能不足以容纳您将void loop()设置为1000的像素。

将其更改为Height并观察500中的两个Series ..

第二个(和第三个)ChartAreas默认 位于第一个下方。两者都是自动调整大小以显示其所有系列中的所有点。

添加第四个ChartArea时,布局会自动更改为2x2网格。

如果您想覆盖ChartArea的默认排列,可以设置ChartAreas。见here for an example

顺便说一句:要摆脱Positions行,写起来更清晰:

MajorGrid

等。

此外,您可以像这样简化chartArea.AxisX.MajorGrid.Enabled = false; ChartAreas的创建:

Series

最后:您确实意识到您只添加了一个 ChartArea chartArea1 = chart1.ChartAreas.Add("ChartArea1"); .. Series series1 = chart1.Series.Add("S1"); .. 一个 Series?这很不寻常......