爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2760|回复: 4

菜鸟求助老师

[复制链接]

新浪微博达人勋

发表于 2015-4-9 10:03:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

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

x
            Color[] colors = new Color[] { Color.FromArgb(255, 0, 128, 0), Color.FromArgb(255, 0, 0, 255), Color.FromArgb(255, 255, 255, 0), Color.FromArgb(255, 255, 0, 255), Color.FromArgb(255, 128, 0, 128), Color.FromArgb(255, 255, 0, 0) };

            double interval = 5;//等值线间隔
            double zzz = gData.GetMinValue();
            double zzz1 = gData.GetMaxValue();

            double cNum = Convert.ToDouble((gData.GetMaxValue() - gData.GetMinValue()) / interval);
            double[] cValues = LegendManage.CreateContourValuesInterval(gData.GetMinValue() + cNum/2, gData.GetMaxValue(), cNum);
            LegendScheme aLS = LegendManage.CreateGraduatedLegendScheme(cValues,
                colors, ShapeTypes.Polygon, gData.GetMinValue() + cNum/2,
                gData.GetMaxValue(), false, -9999);

老师,请问,我的图片有些格点我填充了绿色,就是小于1.22的是绿色,为什么显示不出来?
4 3.6 4 2.8 1.8 2.4 3.4 1.8 1 2.2
3.6 2.8 2.2 2.2 2.4 0.8 2.6 1.8 0.8 2.2
3.2 2.6 2.2 1.8 1.8 2.6 1.8 2.4 2.2 2.4
1.4 2.2 3 2.4 3.4 2.4 2.2 3 1.4 3.6
2.2 2.4 2 2.2 1.4 2.2 2.2 2.6 1.6 2.8
2.8 3 2.6 2.8 1.4 2 4 0.8 1 1.8
4 2.4 1.6 3.8 2.6 3.4 2.4 3.6 1.8 1.6
2.4 3.4 3.6 5 2 2.4 2.4 1.4 2 0.8
2.8 1.4 2.2 3.2 2.2 1.6 1.6 1.2 1.2 1.2
2.4 3.4 4.6 2.4 3.2 2 3.2 3.2 1.8 3.2  这是我的格点值 其中很多小于1.22的! 老师别的颜色都正常。
123.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-9 11:12:59 | 显示全部楼层
gData.GetMinValue() + cNum/2

改为:

gData.GetMinValue()
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-9 11:58:21 | 显示全部楼层
MeteoInfo 发表于 2015-4-9 11:12
gData.GetMinValue() + cNum/2

改为:

老师,如果改为gData.GetMinValue(),图例就会变化那么生成的图例第一个就是<最小值,也就是【0-最小值)这个区间,这样导致这个区间内的颜色永远不会显示了。所以代码我自己去改到了最小值+一点值,这样第一个区间就会有值,但是颜色却没有显示出来。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-9 13:37:03 | 显示全部楼层
中间 发表于 2015-4-9 11:58
老师,如果改为gData.GetMinValue(),图例就会变化那么生成的图例第一个就是

            Color[] colors = new Color[] { Color.FromArgb(255, 0, 128, 0), Color.FromArgb(255, 0, 0, 255), Color.FromArgb(255, 255, 255, 0), Color.FromArgb(255, 255, 0, 255), Color.FromArgb(255, 255, 0, 0) };

            double interval = 5;//等值线间隔

            double cNum = Convert.ToDouble((gData.GetMaxValue() - gData.GetMinValue()) / interval);
            double[] cValues = LegendManage.CreateContourValuesInterval(gData.GetMinValue()+ cNum, gData.GetMaxValue(), cNum);
            LegendScheme aLS = LegendManage.CreateGraduatedLegendScheme(cValues,
                colors, ShapeTypes.Polygon, gData.GetMinValue() + cNum,
                gData.GetMaxValue(), false, -9999);
老师,调试完毕。只要调整好cValues和colors之间数组大小的关系就行。
在这里我设置colors是5个大小,cValues是4个大小,同时cValues第一个区间是gData.GetMinValue() + cNum就可以了。谢谢老师的解答。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-9 13:44:02 | 显示全部楼层
结果如下:谢谢老师。这里不加CNum:LegendScheme aLS = LegendManage.CreateGraduatedLegendScheme(cValues,
                 colors, ShapeTypes.Polygon, gData.GetMinValue() ,
                 gData.GetMaxValue(), false, -9999);
12.jpg
32.jpg
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表