找回密码
 立即注册

QQ登录

只需一步,快速开始

binay

注册会员

16

主题

26

帖子

165

积分

注册会员

积分
165

活字格认证

binay
注册会员   /  发表于:2014-12-15 08:57  /   查看:4974  /  回复:3
项目需要用Polar Plot来绘制图表,要实现的功能是:
1. 显示时间和角度,径向表示时间;
2. 径向的环数是可设定的;
3. 角度轴也可设定;
4. 数据点可用不同颜色表示。

请提供例子程序,谢谢!另外,有没有Component One WPF Chart的相关文档?

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-12-15 11:34:00
沙发
回复 1楼binay的帖子

首先提下,C1Chart有两个基本的轴,X轴和Y轴。C1Chart提供了几十种表类型,PolarCharts是C1Chart的一种类型,将ChartType设置为PolarLinesSymbols或是PolarLines或是PolarSymbols。

除了某些特殊性,PolarCharts可以使用C1Chart的展示数据和绑定数据的方式。

在PolarCharts中,X轴就是这个360度的圆,也就是你说的角度。Y轴就是点,就是你说的不同的数据点。

明确完这个概念,我们再来介绍如何给C1Chart设置数据,可以通过XYDataSeries的标记来设置,比如:
  1. <c1chart:C1Chart Name="c1Chart1" ChartType="PolarLinesSymbols">
  2.   <c1chart:C1Chart.Data>
  3.    <c1chart:ChartData>
  4.     <c1chart:XYDataSeries Label="Series 1" Values="5 10 5 10 5 10 5 10 5"
  5.                                 XValues="0 45 90 135 180 225 270 315 0"/>
  6.     <c1chart:XYDataSeries Label="Series 2" Values="0 2 4 6 8 10 12 14 16"
  7.                                XValues="0 45 90 135 180 225 270 315 0"/>
  8.    </c1chart:ChartData>
  9.   </c1chart:C1Chart.Data>
  10.   <c1chart:C1ChartLegend DockPanel.Dock="Right" /> </c1chart:C1Chart>
复制代码

设置数据的方式C1Chart的各个类型具有相通性,只不过Polar Chart的值是角度和环数。

具体文档参考:
http://helpcentral.componentone. ... nts/polarcharts.htm

如果想要动态的显示,需要数据绑定来做,具体参考:
http://helpcentral.componentone. ... nts/databinding.htm

我们的Demo已经在上个帖子中发送。你提出的具体的问题,我需要验证后给你回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
binay
注册会员   /  发表于:2014-12-15 12:43:00
板凳
谢谢您的快速回复。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-15 15:37:00
地板
回复 1楼binay的帖子

不用客气,详细的问题回答如下:
1.时间这个概念没有理解,要在哪里显示时间,什么代表时间。
2.环的最大值和最小值可以通过C1Chart.View.AxisY.Max/Min属性来控制。每个环的间隔可以通过C1Chart.View.AxixY.MajorUnit属性来控制。
3.角度的最大值和最小值不可以设置,但角度的间隔可以用C1Chart.View.AxisX.MajorUnit设置。
4.数据点可以使用C1Chart.CustomPalette来设置,比如:
  1. Brush[] customBrushes = new Brush[2] { Brushes.Blue, Brushes.Orange };
  2.             c1Chart1.CustomPalette = customBrushes;
复制代码


专门为你的这个写了一段测试代码,你可以看看:
  1.             c1Chart1.Reset(true);

  2.             double[] valueD;
  3.             double[] xvalueD;
  4.             for (int i = 0; i &lt; 2; i++)
  5.             {
  6.                 valueD = new double[] {(i+1)*5, (i+1)*10,(i+1)*15 };
  7.                 xvalueD = new double[] {(i+1)*30,(i+1)*45,(i+1)*90 };
  8.                 string label = &quot;Series&quot; + (i + 1).ToString();
  9.                 c1Chart1.Data.Children.Add(new XYDataSeries() {Label =label, ValuesSource = valueD, XValuesSource = xvalueD });
  10.             }

  11.             c1Chart1.ChartType = ChartType.PolarSymbols;

  12.             c1Chart1.View.AxisX.MajorUnit = 30;

  13.             c1Chart1.View.AxisY.Min = 0;
  14.             c1Chart1.View.AxisY.MajorUnit=5;
  15.             Brush[] customBrushes = new Brush[2] { Brushes.Blue, Brushes.Orange };
  16.             c1Chart1.CustomPalette = customBrushes;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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