You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SAS的PROC GMAP中调整图例顺序,将“No Data”置于四分位数后

解决PROC GMAP图例排序问题:将“No Data”移至四分位数类别之后

方法1:直接通过LEGEND语句指定图例顺序(适用于字符型分类变量)

如果你的PredRateQuartile是字符型(存储的是"Below 9%"这类文本),直接在PROC GMAP中添加LEGEND语句,强制指定图例项的排列顺序:

proc gmap data=library.df map=library.vafips all;
    id fips;
    /* 指定使用自定义图例 */
    choro PredRateQuartile / legend=legend1;
    /* 定义图例顺序,按需求排列类别,将"No Data"放在最后 */
    legend1 order=('Below 9%' 'Between 9% to 11%' 'Between 11% to 14%' 'Over 14%' 'No Data')
           label=none; /* 可根据需求修改图例标题,label=none表示不显示标题 */
run;
quit;

注意:order=中的字符串必须和数据集里PredRateQuartile的实际值完全一致(包括空格、大小写)。

方法2:结合自定义格式+LEGEND排序(适用于数字型分类变量)

如果PredRateQuartile是数字型(0代表No Data,1-4对应四分位数),先通过PROC FORMAT定义显示文本,再用LEGEND指定顺序:

/* 第一步:创建自定义格式,将数字编码映射为文本描述 */
proc format;
    value quartile_fmt
        1 = 'Below 9%'
        2 = 'Between 9% to 11%'
        3 = 'Between 11% to 14%'
        4 = 'Over 14%'
        0 = 'No Data';
run;

/* 第二步:绘图并指定图例顺序 */
proc gmap data=library.df map=library.vafips all;
    id fips;
    /* 应用自定义格式,并指定使用自定义图例 */
    choro PredRateQuartile / format=quartile_fmt legend=legend1;
    /* 按数字编码顺序排列,将0(No Data)放在最后 */
    legend1 order=(1 2 3 4 0)
           label=none;
run;
quit;

这两种方法都能强制图例按你需要的顺序排列,避免默认的字母/数值排序导致"No Data"出现在前面。

内容的提问来源于stack exchange,提问作者Alexandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:32:04