【发布时间】:2015-05-05 14:20:50
【问题描述】:
我创建了一个读取文本文件并将该文件中的数据显示到 DataGridView 中的程序;然后,我使用此 DGV 中的数据根据结果更新“图表”,该图表仅包含折线图。
我想要完成的是允许用户选择该数据的一部分,我将开始和结束拖动到它上面,就像您在启用 x 轴时进行放大一样,并根据更新图表该选择,计算该数据子集的平均值。
使用
chart1.ChartAreas["ChartArea1"].CursorX.IsUserEnabled = Enabled;
chart1.ChartAreas["ChartArea1"].CursorX.IsUserSelectionEnabled = Enabled;
这允许我选择区域并放大,但我不确定如何根据选择实际更新数据而不仅仅是缩放。
【问题讨论】:
-
听起来像 this 的副本 - 当您缩放图表时,它会自动更新自身。如果除此之外你还想要什么?你提到的平均值是什么??
-
它通过遍历构成图形的行数来收集平均值,例如,如果有 3000 行,它将从 0 - 3000 运行并除以 3000,但是除以只是放大它不会更新 X 轴的最大值和最小值,它只会显示放大的视图。如果它是从一半到最后选择的,那么 min = 1500 和 max = 3000 那么显然它类似于 for (i = min, i
-
我还是不太确定:图表中的平均值是一部分还是您在其他地方显示?并且:当视图被缩放时,您是否希望仅从可见点计算平均值?
-
我在其他地方展示了整个事物的平均值,但是一旦更新选择,我会在图表旁边更新它,是的,这是正确的 :)
-
这意味着您需要更新平均值。放大或缩小以及滚动时,对吗?那么您需要一种获取第一个和最后一个可见点索引的方法吗?请参阅here 以获得解决方案! - 您可以编码Chart.AxisViewChanged Event 来进行新的计算..
标签: c# visual-studio-2013 graph charts mschart