找回密码
 立即注册

QQ登录

只需一步,快速开始

SAEUSER001
中级会员   /  发表于:2014-7-14 13:43  /   查看:13182  /  回复:11
你好!  在3D Surface Chart中,,我的代码设置的Z轴范围是30~40,为什么在图上Z轴显示的却是0~38呢?    以下是我的部分代码。

        for (int i = 3; i < lines.Length; i++)
            {
                string[] values = lines.Split(',');

                for (int j = 1; j < values.Length; j++)
                {
                    if (string.IsNullOrEmpty(values[j].Trim()))
                    {
                        z[i - 3, j - 1] = -999.0f;
                    }
                    else
                    {
                        if (double.Parse(values[j].Trim()) < 5 ||
                             double.Parse(values[j].Trim()) > 50)
                        {
                            z[i - 3, j - 1] = -999.0f;
                        }
                        else
                        {
                            //-1.00N
                            if (values[j].Trim().IndexOf('N') > 0)
                            {
                                z[i - 3, j - 1] = -999.0f;
                            }
                            else
                            {
                                z[i - 3, j - 1] = double.Parse(values[j].Trim());
                            }
                        }
                    }
                }
            }

        Chart3DAxis za = c1Chart3D1.ChartArea.AxisZ;
            za.Max = 40;
            za.Min = 30;
            za.UnitMajor = 2;
            za.UnitMinor = 1;
            Chart3DDataSetGrid griddata = null;
            griddata = new Chart3DDataSetGrid(1, 1, 1, 1, z);
            griddata.Hole = -999.0f;
            c1Chart3D1.ChartGroups[0].ChartData.SetGrid = griddata;

本帖子中包含更多资源

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

x

11 个回复

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

你好,请问你是否设置了AutoMax 和 AutoMin属性?
当这两个属性是True的时候图表自动计算轴的范围。
而且Max、Min的取值必须在自动计算出的范围里取值。这个自动计算的值是根据图表数据算出来的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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

你好,我已经设置以下属性为false啊!但是还是无法调节, 如果Z轴刻度范围无法调节的话,很难看出数据趋势。附上测试代码及用ChartDirector作出的3D Surface图,谢谢!
        za.AutoMax = false;
            za.AutoMin = false;
            za.AutoMinor = false;
            za.AutoMajor = false;

本帖子中包含更多资源

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

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

你好。
你的代码示例我已经测试过了,的确存在你所说的问题。
该问题已经提交到产品组,如果有反馈我再通知你。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-7-16 17:54:00
5#
回复 3楼SAEUSER001的帖子

你好,这是产品的设计,Max/Min不能设置在数据的最小值到最大值之间。
如果轴的Min值设置大于你数据的最小值,或是Max值设置小于你数据的最大值,都会重置为默认值。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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

你好, 这个我也试个啊,也是不行滴,另外Z轴的刻度值无法格式化成我想要保留的小数点后2位数。
     1) 绘图前置 35~50之外的数据为Hole 数据。
                 if (double.Parse(values[j].Trim()) < 35 ||
                             double.Parse(values[j].Trim()) > 50)
                        {
                            z[i-1, j - 1] = -999.0f;
                        }
              ......
              griddata.Hole = -999.0f;

    2) Z 轴的设置如下。
        za.Max = 60;
            za.Min = 30;

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-7-17 11:27:00
7#
回复 6楼SAEUSER001的帖子

你好。
第一个问题:Z轴刻度值的格式化可以用值注释来做。分别用AnnoFormat 和AnnoFormatString。比如代码参考:
  1. za.AnnoFormat = FormatEnum.NumericManual;
  2. za.AnnoFormatString = &quot;##.00,&quot;;
复制代码

有关值注释请看我们的中文帮助文档:http://www.gcpowertools.com.cn/d ... !Documents/_146.htm

第二个问题:若是你采用35-50之外的数据为Hole,那么za.Max可以设置为60,za.Min可以设置为30.在我本机设置是没有问题的。
你可以用如下代码得到数据的Z轴的最大值和最小值:
  1. Chart3DData d1 = c1Chart3D1.ChartGroups[0].ChartData;
  2. d1.GetMax(AxisTypeEnum.AxisZ);
  3. d1.GetMin(AxisTypeEnum.AxisZ));
复制代码

然后你设置的c1Chart3d.ChartArea.AxisZ.Max/Min的值不能在上面的范围内。

注意:先要将数据写入C1Chart3d,然后才能设置C1chart3d.ChartArea.AxisZ的最大值和最小值。
否则一开始设置Max/Min,由于数据不存在C1Chart3d里,设置是不会起作用的。

打开你上次给我的sample,将下图的代码注掉,然后移到最后的设置,在我的机子是OK的。



我把你的Samle改了,然后发上来,你可以看看区别。

本帖子中包含更多资源

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

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

葡萄城控件服务团队

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

你好! 谢谢你的回复,ComponentOne 的3D chart数值的范围很大程度上决定了Z轴的刻度范围, 这是我对33~66范围内数据绘制的3D Surface图,效果还行,但是Legend条上的数值不知是否能格式化为保留小数点后2位?

本帖子中包含更多资源

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

x
回复 使用道具 举报
SAEUSER001
中级会员   /  发表于:2014-7-18 13:50:00
9#
回复 8楼SAEUSER001的帖子

另外一个问题是,窗体最大化或Resize一定大小(比如width:1145,Height:668)后图形无法显示, 我的显示器为4:3比例的17寸显示器,屏幕分辨率设置为1280X1204。

评分

参与人数 1金币 +300 收起 理由
Alice + 300 提出Bug。

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-7-18 16:20:00
10#
回复 9楼SAEUSER001的帖子

这两个问题暂时没找到解决方法。
现在反馈到产品组等待解决方案。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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