找回密码
 立即注册

QQ登录

只需一步,快速开始

SAEUSER001
中级会员   /  发表于:2014-8-11 09:24  /   查看:6267  /  回复:5
Hi , 你好!
   用C1linechart 做控制图时,用了一个Data Series 来显示测量数据,其线和点的颜色均设为绿色, 我的问题是,对于该线上超出控制范围的某些点,如何通过编程代码取的该线上的点并设置点为红色(类似MS chart),谢谢。

本帖子中包含更多资源

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

x

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-8-11 14:32:00
沙发
回复 1楼SAEUSER001的帖子

使用PointStyles添加到了C1Chart系列的数据点,给你需要的特殊点展示不同的LineStyle和SymboStyle的。PointStyles 在设计时能够很容易地通过PointStyles 集合编辑器被创建或者通过PointStyle 对象编程实现。
如图:



具体的怎么使用可以参考我们的C1chart技术文档:
http://www.gcpowertools.com.cn/d ... ts/pointstyles1.htm

代码参考:
  1. C1.Win.C1Chart.PointStylesCollection styles = c1Chart1.ChartGroups[0].ChartData.PointStylesList;
  2. C1.Win.C1Chart.PointStyle psmin = styles.AddNewPointStyle();
  3. psmin.LineStyle.Pattern = C1.Win.C1Chart.LinePatternEnum.None;
  4. psmin.SymbolStyle.Color = Color.MistyRose;
  5. psmin.SymbolStyle.OutlineColor = Color.Blue;
  6. psmin.SymbolStyle.OutlineWidth = 2;
  7. psmin.SymbolStyle.Size = 10;
  8. psmin.Selection = C1.Win.C1Chart.PointStyleSelectionEnum.SeriesMinY;
  9. psmin.Label = "Y Min";
  10. psmin.LegendEntry = true;
  11. C1.Win.C1Chart.PointStyle psmax = styles.AddNewPointStyle();
  12. psmax.LineStyle.Pattern = C1.Win.C1Chart.LinePatternEnum.None;
  13. psmax.SymbolStyle.Color = Color.MistyRose;
  14. psmax.SymbolStyle.OutlineColor = Color.Red;
  15. psmax.SymbolStyle.OutlineWidth = 2;
  16. psmax.SymbolStyle.Size = 10;
  17. psmax.Selection = C1.Win.C1Chart.PointStyleSelectionEnum.SeriesMaxY;
  18. psmax.Label = "Y Max";
  19. psmax.LegendEntry = true;
  20. c1Chart1.Legend.Visible = true;
复制代码

本帖子中包含更多资源

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

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
SAEUSER001
中级会员   /  发表于:2014-8-11 15:08:00
板凳
回复 2楼Alice的帖子

Hi ,你好,
你贴的代码只是针对数据的最大值和最小值啊,有没有更好的方式通过获取点的对象方式改变颜色值呢?希望能控制任意点的颜色, 如下图:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-8-11 16:18:00
地板
回复 3楼SAEUSER001的帖子

这个类可以控制任意点的。

将 PointStylesCollection.Selection设置为C1.Win.C1Chart.PointStyleSelectionEnum.Index,就可以通过PointStyle.PointIndex和SeriesIndex指定哪个系列的第几个点,实现对系列的任何点改变颜色。

比如你在添加数据的时候判断是否在范围内,比如发现第二个系列的第三个点不在范围内,就用如下代码改变颜色:
  1. C1.Win.C1Chart.PointStylesCollection styles = c1Chart1.ChartGroups[0].ChartData.PointStylesList;
  2.             C1.Win.C1Chart.PointStyle ps = styles.AddNewPointStyle();
  3.             ps.SymbolStyle.Color = Color.MistyRose;
  4.             ps.Selection = C1.Win.C1Chart.PointStyleSelectionEnum.Index;
  5.             ps.PointIndex = 2;
  6.             ps.SeriesIndex=1;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
SAEUSER001
中级会员   /  发表于:2014-8-11 17:05:00
5#
回复 4楼Alice的帖子

谢谢,问题已解决。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-8-12 11:19:00
6#
回复 5楼SAEUSER001的帖子

好的,不用客气。

评分

参与人数 1满意度 +5 收起 理由
SAEUSER001 + 5 谢谢,问题已解决

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部