找回密码
 立即注册

QQ登录

只需一步,快速开始

cf10082007

初级会员

22

主题

81

帖子

215

积分

初级会员

积分
215

活字格认证

cf10082007
初级会员   /  发表于:2014-9-3 13:53  /   查看:6193  /  回复:7
你好:
      我需要X坐标显示点的时间,timeX是一个List<string>, 值的格式为2014/9/3,但X坐标显示的值为41885.25,请问应该怎么处理。
series0 = new XYDataSeries() { ConnectionStroke = scb, SymbolSize = new System.Windows.Size(6, 6), XValuesSource = timeX, ValuesSource = yData0 };

7 个回复

倒序浏览
heyixiaoran
论坛元老   /  发表于:2014-9-3 17:03:00
沙发
XYDataSeries 有个Label 属性,你把要显示的X轴的值放里就行了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-3 19:02:00
板凳
回复 2楼heyixiaoran的帖子

你说的是对的,就是使用这个属性。如果有什么问题,可以继续提出来交流。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
cf10082007
初级会员   /  发表于:2014-9-4 08:40:00
地板
Label是显示在右边的,而且他只是一个string值,我要的是显示每个点的X坐标值为2014/9/3 8:38。是在下边显示的
回复 使用道具 举报
cf10082007
初级会员   /  发表于:2014-9-4 10:13:00
5#
_chart.Data.ItemNames = timeX;
                _chart.View.AxisX.AnnoAngle = 70;
               
                series = new DataSeries() { ConnectionStroke = scb, SymbolSize = new System.Windows.Size(6, 6),RenderMode= RenderMode.Default, ValuesSource = yData0 };
                _chart.Data.Children.Add(series);
我按上面方法实现了我的基本要求,但当点数一多,下面就密密麻麻,根本看不清,有什么办法让他能智能间隔显示,不要全部显示出来
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-4 11:42:00
6#
回复 5楼cf10082007的帖子

我将你的问题总结了下,主要分为2个方面。
1.将X轴数据显示成时间的格式。
2.调整X轴的刻度的间隔。
根据你的需求,可以使用C1Chart.View.AxisX.IsTime/MajorUnit/AnnoFormat属性,可以设置X轴时间显示/刻度间隔/显示的格式。也特别为你的需求写了段代码作为参考,如下:
  1.             // random time data
  2.             var npts = 100;
  3.             var xs = new string[npts];
  4.             var ys = new double[npts];

  5.             var x0 = DateTime.Now.AddDays(-npts);
  6.             var rnd = new Random();
  7.             for (int i = 0; i &lt; npts; i++)
  8.             {
  9.                 xs[i] = x0.AddDays(i).ToLongDateString();
  10.                 ys[i] = rnd.NextDouble() * 1;
  11.             }

  12.             var ds = new XYDataSeries() { XValuesSource = xs, ValuesSource = ys, RenderMode = RenderMode.Default };

  13.             chart1.Data.Children.Add(ds);
  14.             chart1.ChartType = ChartType.Line;
  15.             chart1.View.AxisX.AnnoFormat = &quot;MM/dd&quot;;
  16.             chart1.View.AxisX.MajorUnit = 20;
  17.             chart1.View.AxisX.IsTime = true;
复制代码

代码中有100个数据点,依然能够按照你的需求,很清晰的显示。

评分

参与人数 1满意度 +5 收起 理由
cf10082007 + 5 圆满解决

查看全部评分

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
cf10082007
初级会员   /  发表于:2014-9-4 16:26:00
7#
搞定了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-4 19:28:00
8#
回复 7楼cf10082007的帖子

好的。欢迎参与评分。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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