有2个问题:
问题1:C1Chart显示大量数据时,如果Scale很小,如0.01,即使落在屏幕内的线和点很少时,刷新也很慢,
感觉控件在渲染/加载数据时,不仅处理屏幕以内的数据,把屏幕以外的内容也进行了处理。
请问,这个控件处理数据的原理,是像我说的这样吗?
有什么设置,让它只处理屏幕内的数据吗,或者提供对外接口,实现数据过滤函数。
实例代码:
- void CreateChart()
- {
- chart.BeginUpdate();
- int cnt = 20000;
- for (int j = 0; j < 20; j++)
- {
- double[] x = new double[cnt];
- double[] y = new double[cnt];
- for (int i = 0; i < cnt; i++)
- {
- x[i] = i;
- y[i] = 10 * Math.Sin(0.001 * i) + Math.Cos(0.03 * i) + j;
- }
- XYDataSeries ds = new XYDataSeries()
- {
- XValuesSource = x,
- ValuesSource = y,
- ConnectionStrokeThickness = 1
- };
- chart.Data.Children.Add(ds);
- chart.ChartType = ChartType.Line;
- }
- chart.View.AxisX.ScrollBar = new AxisScrollBar();
- chart.View.AxisX.Scale = 0.01;
- chart.EndUpdate();
- }
复制代码
问题2:C1Chart可以显示如下图这样的效果吗?暂且叫作光谱图或频谱图吧。
图中的颜色不是固定的,可以随数据变化而变化。用哪种序列,或者提供接口,由开发者自定义序列?
|