VB 2008 .NET Framework 3.5的 的MSChart - 快绳图表类型VB.NET CHART-显示总的数据点的子集
是否有可能有一个MS图表控制包含20000个数据点,但是仅示出最后的100?
我知道我可以从我的数据表中选择最后的100个并将其用作数据源。
Chart1.DataSource = cMs2.dsData.Tables("readings").Select(wFilter, wSort).Take(100)
这不是我想要的。
我知道我可以用最后100个数据点填充数组或集合,并将其用作数据源。
Chart1.Series("readings").Points.DataBindXY(colCtr, colReadings)
这不是我想要的。
,我需要做的1 2两件事:
手动添加的数据点,并能够只显示最后100或他们的最后1000刚进来的这必须在不重新做填充图表。只显示完整数据点的一部分。
wSample = wSample + 1 Chart1.Series("readings").Points.AddXY(wSample, wReading) Chart1.Series("readings").SHOWONLYTHELAST100DATAPOINTSWITHOUTCLEARING
初始化图表具有一定数目与
databind
总读数,然后手动一次添加新的数据点中的一个,同时除去最老的数据点。例如,用100个数据点初始化图表,然后添加一个新的数据点,删除第一个数据点,让我们回到100.(我成功地做了这个,除了图表没有像我期望的那样。图表增长,保持空白/空白处的'已删除'数据点。我做了chart.update,但没有刷新它。)请注意,我可以花更多的时间来初始化图表(clear/populate)
,我没有有一次,因为每个新的数据点进来做wSample = wSample + 1 Chart1.Series("readings").Points.AddXY(wSample, wReading) If Chart1.Series("readings").Points.Count > 100 Then Chart1.Series("readings").Points.RemoveAt(0) Chart1.Update() End If
注意:这样做使我一定要清除并重新绑定的数据处理另外的一个数据点的原因的过程我的问题,因为它需要太长时间。我只是寻找最快,最有效的方式来处理这个问题。感谢您抽出时间来阅读...!
欢迎来到肮脏的黑客控制。尝试使用Linq查询(方法2)而不是“Chart1.Update”来设置XAxis的Minimum/Maximum。 (与'.Max'相同'Maximum'):'Chart1.ChartAreas(0).AxisX.Minimum =(From p As DataVisualization.Charting.DataPoint In Chart1.Series(0).Points Select p.XValue).Min ' – Jens 2014-08-30 19:46:48
谢谢,这非常有帮助。我还没有做linq查询,但我将.Minimum设置为(完全数据点减10),完美运行。我认为它太复杂了,认为数据点的数量需要等于我在图表中看到的数量。感谢您的好解决方案。 - 杰夫 – user3670107 2014-09-01 18:03:03
很好听。我已经添加了我的评论作为答案。 – Jens 2014-09-01 20:08:11