首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sgplot图例顺序(默认选项除外)

sgplot图例顺序(默认选项除外)
EN

Stack Overflow用户
提问于 2015-01-14 04:06:05
回答 1查看 1.3K关注 0票数 1

grouporder的默认选项是data。但是,如果我的数据以Sat开头,并且为SatSun等分配了不同的颜色,那么图例顺序要么以Sat(input data order)开头,要么以字母顺序开始。

但我想强制命令成为Mon - Sun。当然,我可以创建另一个变量、myorder、1 for Mon7 for Sun,然后按myorder分组。但以这种方式,图例显示的是1,2,3..而不是Mon Tue ...

样本数据:

代码语言:javascript
复制
Date   DayofWeek myorder Sale
3Jan15 Sat       6       20.1
4Jan15 Sun       7       31.1
5Jan15 Mon       1       19.1

可能是一种解决方案

但是我尝试了proc format (在上面的链接中使用的方法),但是它没有帮助。

样本数据:

代码语言:javascript
复制
data _t;
input day dow $ sale;
cards;
1 Thu 22.0
2 Fri 23.1
3 Sat 28.2
4 Sun 30.0
5 Mon 21.1
6 Tue 18.2
7 Wed 16.9
8 Thu 18.0
9 Fri 27.9
10 Sat 27.2
11 Sun 13.9
12 Mon 16.0
13 Tue 18.0
;
run;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-14 15:34:38

PROC格式解决方案是有效的。下面是一个例子。如果preloadfmt作为一种选择而存在,那就太好了,但似乎并非如此。

基本上,我们创建了两种格式-- informat (将“Sun”转换为1等)。和一种格式(用‘Sun’标记1)。我给他们起同样的名字,他们不一定要这样。

代码语言:javascript
复制
proc format;
  value dayorder
  1='Sun'
  2='Mon'
  3='Tue'
  4='Wed'
  5='Thu'
  6='Fri'
  7='Sat'
  ;
  invalue dayorder
  'Sun'=1
  'Mon'=2
  'Tue'=3
  'Wed'=4
  'Thu'=5
  'Fri'=6
  'Sat'=7
  ;
quit;

data _t2;
  set _t;
  dow_order = input(dow,dayorder.);
  format dow_order dayorder.;
run;


proc sgplot data=_t2;
vbar day/group=dow_order response=sale grouporder=ascending;
run;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27935687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档