找回密码
 立即注册

QQ登录

只需一步,快速开始

mingcedar

高级会员

5

主题

35

帖子

1570

积分

高级会员

积分
1570

活字格认证

mingcedar
高级会员   /  发表于:2013-11-30 10:54  /   查看:7588  /  回复:6
有2个问题:
问题1:C1Chart显示大量数据时,如果Scale很小,如0.01,即使落在屏幕内的线和点很少时,刷新也很慢,
感觉控件在渲染/加载数据时,不仅处理屏幕以内的数据,把屏幕以外的内容也进行了处理。
请问,这个控件处理数据的原理,是像我说的这样吗?
有什么设置,让它只处理屏幕内的数据吗,或者提供对外接口,实现数据过滤函数。
实例代码:
  1.     void CreateChart()
  2.     {
  3.       chart.BeginUpdate();
  4.       int cnt = 20000;

  5.       for (int j = 0; j < 20; j++)
  6.       {
  7.           double[] x = new double[cnt];
  8.           double[] y = new double[cnt];
  9.           for (int i = 0; i < cnt; i++)
  10.           {
  11.               x[i] = i;
  12.               y[i] = 10 * Math.Sin(0.001 * i) + Math.Cos(0.03 * i) + j;
  13.           }
  14.           XYDataSeries ds = new XYDataSeries()
  15.           {
  16.               XValuesSource = x,
  17.               ValuesSource = y,
  18.               ConnectionStrokeThickness = 1
  19.           };

  20.           chart.Data.Children.Add(ds);
  21.           chart.ChartType = ChartType.Line;

  22.       }
  23.       chart.View.AxisX.ScrollBar = new AxisScrollBar();

  24.       chart.View.AxisX.Scale = 0.01;
  25.       chart.EndUpdate();
  26.     }
复制代码


问题2:C1Chart可以显示如下图这样的效果吗?暂且叫作光谱图或频谱图吧。
图中的颜色不是固定的,可以随数据变化而变化。用哪种序列,或者提供接口,由开发者自定义序列?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

6 个回复

倒序浏览
mingcedar
高级会员   /  发表于:2013-12-2 13:42:00
沙发
版主,帮看看这个有解吗?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-2 16:03:00
板凳
抱歉,回复的不够及时。   :Z

问题一: 上个月,在回复你的第一个提问时候和美国那边的产品团队沟通过这个问题,
   WPF 的Chart渲染了全部数据:添加进去的数据(当前页面呈现的数据、当前页面未能呈现的数据)
    当前最直接的做法是自己控制呈现的数据。可参加帖子:http://gcdn.grapecity.com/showtopic-10881.html

问题二:光谱图吧
抱歉,Chart没有直接的这种ChartType。
  你用ChartType=Line测试过吗?  不同颜色用不同的Line试试。
  同时,WPF Chart自带的demo中,有一个ColumnStacked类型的Chart
   截图如下:   
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
mingcedar
高级会员   /  发表于:2013-12-3 11:13:00
地板
谢谢回答
我试过自己写逻辑,动态增加或减少数据源队列中的数据,
但随着滚动条的滚动,要不断地替换数据,开销也很大,效果也不理想。
chart现在的实现,感觉是有缺陷的。如果在内部加上这样的过滤(当前页/当前页以外)的处理,应该不难。

关于问题2,呈现的颜色是随实际数据渐变的,而且呈现这么多线,性能也无法接受。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-3 11:38:00
5#
回复 4楼mingcedar的帖子

问题1: 您遇到的这个问题,在上个月的沟通过程中,我已经向产品团队提了类似的这个建议。
C1Chart的设计初衷,要顾及方方面面的用户,有的方面没有照顾到,还请您多多包涵。
如目前您遇到最大的问题是实时滚动、大数据密集呈现的需求,就比较棘手。

问题2: 这个我倒没考虑到。 光谱图真心好看,在物理课本曾经见过,赞一个。

针对以上2个特定Chart问题,从您的项目出发,有3个解决办法(每个都有性价比=成本/效率的考虑):
方案一:在网上找找,某些特殊行业--物理、化学分析有其行业Chart控件。
方案二:仅针对小范围的,在R&D团队内部DIY控件---考虑小而美、硬编码实现业务需求为原则--不过度设计
方案三:修改、权衡一下业务逻辑,看看目前C1Chart已有的demo中,有无能拿来用的。
回复 使用道具 举报
mingcedar
高级会员   /  发表于:2013-12-3 13:25:00
6#
好的,我们再想想办法吧。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-3 13:25:00
7#
回复 6楼mingcedar的帖子

抱歉了。   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部