rongchao 发表于 2014-4-29 20:13:00

【WinForms】XYZSurfaceSeries坐标显示问题

XYZSurfaceSeries的Series没有CategoryNames属性,那么X轴、Z轴如何显示成日期或其他需要的字符?现在只能显示1、2、3、4序号。

iceman 发表于 2014-4-30 10:40:00

回复 1楼rongchao的帖子

可以通过 LabelFormatter 来转换为 日期等格式,可以通过 ChartDesigner 设计,方法请参考截图:



代码:
FarPoint.Win.Spread.Model.GeneralFormatter test = new FarPoint.Win.Spread.Model.GeneralFormatter();
test.SetFormatString("$#,##.00", false);

FarPoint.Win.Spread.Model.GeneralFormatter test2 = new FarPoint.Win.Spread.Model.GeneralFormatter();
test2.SetFormatString("#,##.00", false);

FarPoint.Win.Chart.ValueAxis v1axis = new FarPoint.Win.Chart.ValueAxis();
1axis.LabelFormatter = test2;

FarPoint.Win.Chart.BarSeries series = new FarPoint.Win.Chart.BarSeries();
series.Values.Add(10.0);
series.Values.Add(2.0);
series.Values.Add(4.0);
series.Values.Add(8.0);
series.LabelVisible = true;
series.LabelFormatter = test;

FarPoint.Win.Chart.YPlotArea plotArea = new FarPoint.Win.Chart.YPlotArea();
plotArea.Location = new PointF(0.2F, 0.2F);
plotArea.Size = new SizeF(0.6F, 0.6F);
plotArea.XAxis.LabelFormatter = test;
plotArea.YAxes.Clear();
plotArea.YAxes.Add(v1axis);

plotArea.Series.Add(series);
FarPoint.Win.Chart.ChartModel model = new FarPoint.Win.Chart.ChartModel();
model.PlotAreas.Add(plotArea);
FarPoint.Win.Spread.Chart.SpreadChart chart = new FarPoint.Win.Spread.Chart.SpreadChart();
chart.Size = new Size(200, 200);
chart.Location = new Point(100, 100);
chart.Model = model;
fpSpread1.Sheets.Charts.Add(chart);

rongchao 发表于 2014-4-30 11:38:00

为什么我的7.0 V3没有Date的LabelFormatter格式?
另外在XYZSurfaceSeries中LabelFormatter设置也达不到要求。
如:横坐标X是特定日期,如2001、2002。而它默认的序列1、2即使转化为日期,也与特定日期不符。Z坐标是一组文本。XYZSurfaceSeries中就没有输入文本组的CategoryNames。怎么将一组文本反映到Z坐标的label上?

rongchao 发表于 2014-5-4 11:58:00

没有CategoryNames属性的XYZSurfaceSeries是不是没有办法解决X轴和Z轴的自定义问题?

iceman 发表于 2014-5-4 12:29:00

回复 3楼rongchao的帖子

rongchao 你好,

附件是我当前实现的进度,请指出和你那边预期的不符合地方,我再修改:



CategoryNames 问题我正在调查。

rongchao 发表于 2014-5-4 14:34:00

只是更改 LabelFormatter,那么X坐标只能是12/31/1899,对应0,1/1/1900,对应1,这显然不是正常的日期,假如是2014-5-1这天对应的数据是(2,3)、2014-5-2对应的数据是(5,8),这样X轴日期就应该是2014-5-1、2014-5-2,再考虑Z轴如果是一组文本也没办法处理。另外虽然是valueAxis,但是我需要假如500.12、501.25、502.25这样的小数,XYZSurfaceSeries好像也无法实现。

iceman 发表于 2014-5-5 14:08:00

回复 6楼rongchao的帖子

和你确认下问题:
1. 日期起始值为12/31/1899,X 轴无法正常显示日期类型坐标。
2.Z 轴需要显示为定制的文本信息。
3.希望调整当前的显示单位,精确到小数点?

以上,如果确认无误。
我需要和研发组进行沟通,看能否进行定置。
谢谢

rongchao 发表于 2014-5-5 14:45:00

可以这么说。
其实三条可以归结为一条,就是X轴和Z轴不一定是1、2、3等序号,而是特定的文本,你可以把日期和小数,甚至百分号都看成文本来显示。有个CategoryNames属性就可以解决,不知为什么YZSurfaceSeries就没有,都显示成1、2、3等序号怪怪的。

iceman 发表于 2014-5-5 17:07:00

回复 8楼rongchao的帖子

好的,问题已经确定,有进一步信息反馈给你。

iceman 发表于 2014-5-14 09:36:00

回复 8楼rongchao的帖子

你好,
经调查,XYZSurfaceSeries 当前没有提供 CategoryNames 类似功能属性,目前已经作为需求提交给产品组,有进一步消息反馈给你。
页: [1]
查看完整版本: 【WinForms】XYZSurfaceSeries坐标显示问题