我可以轻松创建两个单独的图表,但我想将它们添加到一个图表中。一个在顶部,另一个在它下面。那我怎么能这样做呢?
这是我到目前为止尝试过的代码,但它只在顶部绘制了一个图表。
// 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]);
}
答案 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
?这很不寻常......