【问题标题】:Get data from DataGridView to Chart从 DataGridView 获取数据到 Chart
【发布时间】:2015-09-09 09:50:54
【问题描述】:

我需要将数据从单个 DataGridView 获取到 3 个不同的图表中,每列到一个图表。 这是我第一次使用图表,所以我对它们进行了一些研究,但找不到任何可以帮助我解决这个特定问题的东西。

下面是我的 DataGridView 和我的图表的截图,以及它们各自的图例:

我需要的是(至少在理论上)一件非常简单的事情。在“SANITY”图表中,我需要将位于Table[0, 0] 的值转换为sanityChart.Series[0] 之类的“Y”值,依此类推。 “UNIT”和“ISSUES DB”也是如此。 任何帮助将不胜感激。

【问题讨论】:

  • 了解图表!它可以在一个或多个 ChartAreas 中显示一个或多个系列或数据点。您可以像这样将数据点添加到系列中: Series.AddXY(xval, yval): chart1.Series[0]Points.AddXY[3,3];选择图表类型! x 和 y 值的基本数据类型是 double。
  • @TaW 谢谢老兄,chart1.Series[0].Points.AddXY(3, 3); 已经给了我提示。
  • 是的。我注意到你有三个系列。每个可以有许多数据点。所以也许你只需要一张图表..?如果你有列,你也可以给每一个单独的颜色..
  • @TaW 是的,这也可以。只需发布 chart1.Series[0].Points.AddXY(3, 3); 作为此问题的答案即可。

标签: c# datagridview charts dataset


【解决方案1】:

从你提出问题的方式和你展示的图片来看,我相信你想要这样的东西:

我只使用了一个Chart,并为您的每个Columns 添加了一个Series

设置图表后,我为表格中的每一行添加了一个数据点到每个系列/列..:

// setting up the datagridview
Table.Rows.Clear();
Table.Columns.Clear();
Table.Columns.Add("state", "");
Table.Columns.Add("sanity", "SANITY");
Table.Columns.Add("unit", "UNIT");
Table.Columns.Add("issuesDb", "ISSUES DB");
// filling in some data
Table.Rows.Add("ALL PASSED", 86, 21, 2);
Table.Rows.Add("FAILED", 7, 0, 1);
Table.Rows.Add("Cancelled", 0, 0, 0);

// Now we can set up the Chart:
List<Color> colors = new List<Color>{Color.Green, Color.Red, Color.Black};

chart1.Series.Clear();

for (int i = 0 ; i < Table.Rows.Count; i++)
{
    Series S = chart1.Series.Add(Table[0, i].Value.ToString());
    S.ChartType = SeriesChartType.Column;
    S.Color = colors[i];
}

// and fill in all the values from the dgv to the chart:
for (int i = 0 ; i < Table.Rows.Count; i++)
{
   for (int j = 1 ; j < Table.Columns.Count; j++)
   {
      int p = chart1.Series[i].Points.AddXY(Table.Columns[j].HeaderText, Table[j, i].Value);
   }
}

请注意,我选择将DataPointsAddXY 重载一起添加,并且还决定通过将X-Values 添加为strings,让我的生活更轻松。在内部,它们仍然转换为doubles,并且都将具有0 的值!在这里对我们来说不是问题,但重要的是要了解我们没有使用有效数字,因此不能将它们视为数字!优点是轴标签被设置为列标题而无需任何进一步的工作..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多