数学建模社区-数学中国
标题:
用SAS实现商业周刊经典风格 对绘图背景进行隔行填色
[打印本页]
作者:
厚积薄发
时间:
2011-6-7 20:16
标题:
用SAS实现商业周刊经典风格 对绘图背景进行隔行填色
2011-6-7 20:15 上传
下载附件
(7.88 KB)
data ex;
7 {6 ]. h+ Y4 b6 i
input x y g color $;
8 b* Y: T: _ R2 q- W
cards;
* X* S; ]. i: ~+ S# y; N
1 2 1 Yahoo!
7 R4 M( ?6 d4 t4 m o* k) n
1 4 2 Google
0 V$ r* Y- E! W
2 5 1 Yahoo!
( A. N- q% P) z
2 8 2 Google
1 G0 n# T( ?6 k
4 12 1 Yahoo!
$ Q# O) M4 R% ~* I% U
4 10 2 Google
/ p6 K, X# G, E" F- ~7 {& `
5 9 1 Yahoo!
# X7 j1 j* x* B0 o
5 7 2 Google
) ~/ E% q6 a2 u% B% ?
;
( p7 w9 u$ T; R6 J0 X
data title_anno;
. t2 J; P, i' }3 v! w1 R! e6 c
when=’b'; xsys=’3′; ysys=’3′; style=’solid’;
# N2 u# m( c, J& B8 a( F+ Z
function=’move’; x=0; y=87; output;
" k, [6 W6 \. T( m# h+ _# c- C
function=’bar’; x=100; y=100; color=’black’; output;
3 K$ W- f; R2 Q
run;
; \+ r0 Y$ y: V u
data range_anno;
% t7 a B, p; h5 u* U7 [& M# R2 P
when=’b'; xsys=’1′; ysys=’1′; style=’solid’;
: K* i" O, r* {" I* |# C& \$ M- n
function=’move’; x=0; y=0; output;
R( Q6 N, h5 g' \% V( W( `
function=’bar’; x=100; y=20; color=”cxFFFBDD”;output;
3 y. o! [% i# i
function=’move’; x=0; y=20; output;
" j2 g( C9 p" ~( e
function=’bar’; color=”cxEEE3B4″; x=100; y=40; output;
9 u; ^$ X |- j9 z5 {
function=’move’;x=0; y=40; output;
" p3 U. f/ x& L d0 v: H l
function=’bar’; color=”cxFFFBDD”; x=100; y=60; output;
3 d) K' R6 K; z( k3 _) L3 ]
function=’move’;x=0; y=60; output;
; i( u @: y a0 p- B- ^
function=’bar’; color=”cxEEE3B4″; x=100; y=80; output;
C( g" H. S5 `% \
function=’move’;x=0; y=80; output;
. u9 o$ n6 s7 X i
function=’bar’; color=”cxFFFBDD”; x=100; y=100; output;
; y( z0 A, ^( O0 w& E" [7 y% @, A
run;
6 M* P; O B% L# f3 \8 b
data range_anno1;
# T3 ` v" J! b! B
when=’b'; xsys=’1′; ysys=’1′;
( k0 z" g$ L# C0 j% b3 A; H
function=’move’; x=0; y=20; output;
* W7 {% D5 b" W& E) @3 T
function=’bar’; x=100; y=20; color=”cxD6CECD”;output;
; g' d. J8 f" L8 Y* _" P
function=’move’; x=0; y=40; output;
: X T& Q/ w" {! E
function=’bar’; color=”cxD6CECD”; x=100; y=40; output;
$ v6 A- a9 b& t" E; B
function=’move’;x=0; y=60; output;
8 q7 y1 F1 o% ~& Q; u9 ]& x
function=’bar’; color=”cxD6CECD”; x=100; y=60; output;
0 O/ C- Z# n: k# k
function=’move’;x=0; y=80; output;
& m9 Z- q g6 N) U. J: f
function=’bar’; color=”cxD6CECD”; x=100; y=80; output;
! q8 k; p, C& X- ], G- ^
run;
& g/ i7 R1 X! j; u, a8 F. i
data range_anno;
+ ]# K2 k8 _ C Y- E8 ?
set range_anno range_anno1;
& g+ k# z. h! a5 q! r& D
run;
( _& a$ }% T- i# t+ f
FILENAME file “c:\bussiness.png”;
( c2 m! W) O8 S
GOPTIONS reset=all noborder Cback=”cxEEE3B4″ device=png gsfname=file
' {. i( ~/ T% ^0 w& [
vsize=7cm hsize=7cm
6 B; b( D' w% B x4 h7 i! O Z
ymax=8cm xmax=9cm
/ R" G. e$ m: f# _8 K7 U
htext=1.5 ;
" N7 y/ o0 v5 [( k
axis1 major=none width=2 label=none REFLABEL=none value=(h=1 color=black “Q1″ “Q2″ “Q3″ “Q4″ ) offset=(4,4);
9 X- A' P* k, I7 Q& z' p& \
axis2 color=black width=2 label=none order=(0 to 13 by 4) minor=none major=(h=1) value=(h=1.0) offset=(0,2);
. [& y: x' f- ?! {2 c( C
axis3 major=none label=none value=none;
7 O5 o1 V' ], @# W/ v
pattern1 v=s color=’cxFF8E00′;
4 Z; @* z. _9 b# ?
pattern2 v=s color=’cx004C7A’;
. Q( f" {7 ? Q1 ]( E7 V0 d( M
title j=l BCOLOR=black COLOR=white h=3.5 font=CENTB ” Bussniess weekly style”;
. a) u! L; r g4 |( X
title2 j=l ” Internation compsdfdsfsfd”;
& @# I5 X& R+ L" A' H# g. f
title3 j=l ” asdfd asdfdf dfsdfsd”;
% d) e1 m3 m; C8 i
legend1 label=none value=(HEIGHT=1.2 ‘Yahoo!’ ‘Google’ ) POSITION=(inside middle ) OFFSET=(-11,2.5)
1 T. g: \3 w2 d! }: q: E0 ^! l
shape=bar(.1in,.1in);
* N7 B3 Y# Q6 L3 ~+ \+ [3 E3 L
proc gchart data=ex anno=title_anno;
8 i' }7 g( U3 B7 E7 N) E& p, w; O
vbar g / discrete type=sum
$ `5 j# r. q7 {% H- c$ @
sumvar=y
& j0 [7 @8 m1 z( \( [0 x
maxis=axis1 raxis=axis2 GAXIS=axis3
5 W3 y2 E1 M* a2 N
coutline=gray33 caxis=”cxD6D3B8″
& F6 J! t- Q' A& p! F% L+ X
width=4
2 ]+ b! N7 b) B0 o" W% X- h; y
space=0
& | T- k/ v7 U4 Y5 U
gspace=0
/ q0 }* p6 T D' c/ b7 v4 I
subgroup= color
( f f! R& M; ?) l( G
group=x
$ X- L# `4 E( J% I+ y" y
legend=legend1
- g. A* Z2 J. o. m! E' J' a" R! ~
anno=range_anno ;
/ z( }" P" c- _2 J9 E
footnote justify=l h=1 font=swiss “ Data from **group”;
: Z0 J: M& d. ^9 Z/ K
footnote2 justify=l h=1 font=swiss “
http://sxlion.blog.sohu.com
”;
- O, } _+ Q7 b2 F, x: z
run;
5 k9 _& V3 g' J2 ]2 v' h
quit;
( s. d; i) A$ P0 F' |9 w: W8 _
下面是excelpro博客介绍的经典商业周刊风格的图表,对比一下相差无几。
) F e8 A6 D* I& I) l k
这代码是相当的复杂,调试也比较费功夫。
! W$ K& a* v$ E& l
2011-6-7 20:15 上传
下载附件
(10.18 KB)
* }5 K/ ^$ m9 c; M
本来准备在sgplot的band语句画区域作为背景来实现的,但是由于存在bar图与band不兼容的情况,于是只好转向anno了。见SAS公司详细说明。
. }% F. h$ a1 c7 _5 O; m. {
There are four basic types of plots that you can create with the SGPLOT procedure:
/ A; O- q3 P4 i8 R9 ^2 Z, N. q6 }
Basic plots
* E* }) k6 W% k% }
scatter, series, step, band, needle, and vector plots
: g- ]# F7 h2 `& a
Fit and confidence plots
4 A+ @: ?6 q V4 Q* O% j* S1 Y
loess, regression, and penalized B-spline curves, and ellipses
8 N# n+ p: S) F) w; W2 [$ N. c
Distribution plots
6 p5 z, s0 K. ^9 i1 Q5 Y# k
box plots, histograms, and normal and kernel density estimates
K V6 n5 z0 H( `; @4 ?& @/ A
Categorization plots
. y2 j& l4 i8 E
dot plots, bar charts, and line plots
( P! s1 N) J8 V2 w4 k3 ]8 Q$ b
Not all of the plot types can be used together in the same PROC SGPLOT step. The following table shows which of the plot types can be used together
6 n0 B5 O ^- a3 d
3 F- p- W, z$ m$ m
! U. D7 u d6 L' X8 b$ w
data ex;
: m" c$ f: k- a; E$ d& o
input x y ;
, z# m+ @2 R" E7 m
cards;
# |+ M+ k- i/ L) i6 H9 t+ e
1 2
}) S% f6 o$ M) ^9 P4 h) H
2 7
+ ~6 V, b: ^+ N1 T2 k8 J
4 12
% N i1 r/ V- ^. T( ]
5 11
, D+ g3 G- r: n6 a( I7 j+ j
6 9
/ R* K& _0 ^, u! A, [, v# u
7 8
3 ^% m! H+ ~! {. ]
;
- ~5 ]+ p# J7 h* s8 ~
title ;
+ Y8 [% w7 l+ p L7 X
footnote;
, O L# ~! N, K, `3 M0 ]
proc sgplot data=ex noautolegend;
/ W2 C2 a1 J7 V( C* {& x5 D
SERIES x=x y=y/LINEATTRS=(color=blue thickness=6) ;
$ o4 v$ [9 A( v9 [9 p
band x=x lower=0 upper=2.5 / OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
% g6 r( L/ m& W( o
band x=x lower=2.5 upper=5 / OUTLINE transparency=.7 LINEATTRS=(color=black) fillattrs=(color=orange) NOOUTLINE;
7 t9 c6 ?8 S# m$ R3 d2 n
band x=x lower=5 upper=7.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
; K/ F0 F( T1 `, l
band x=x lower=7.5 upper=10 / OUTLINE transparency=.7 LINEATTRS=(color=black) fillattrs=(color=orange) NOOUTLINE;
1 }5 Z( a3 G7 f5 P* S% a+ j
band x=x lower=10 upper=12.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
2 z% U9 v5 _8 k* k- H/ `1 L2 z
yaxis values=(0 to 12 by 3) min=0 max=13 valueshint;
2 f& a: B( Y* A* `8 M! R3 m3 N
xaxis values=(0 to 8 by 2) min=0 max=8 valueshint;
+ Y3 l9 Z# U: N" ^' a2 T# a, j
run;
, ]9 Q/ i1 D7 S Y6 W5 Y0 n
来源:数据挖掘学院
作者:
平平凡凡的我
时间:
2011-12-30 14:34
不错的东东
作者:
alair003
时间:
2012-2-6 11:04
看看,肯定能学到不少东西~!~!~@!~!~!~!~
8348932838256931
作者:
schnee
时间:
2012-2-6 16:53
顶!!!!!!!
作者:
jt202010
时间:
2012-2-19 10:45
作者:
老牦
时间:
2012-2-19 23:10
顶!!!!!!!
作者:
飞雪灬无痕
时间:
2012-3-4 19:51
学习了。。。。。。。。
作者:
hahaysw
时间:
2012-3-10 09:53
不错的东西,数学中国做的图相当好看啊!
作者:
540109558
时间:
2012-3-10 12:56
相当的不简单啊
作者:
秋の名山で戦
时间:
2014-1-16 22:20
哇 太强了 效果相当好
作者:
秋の名山で戦
时间:
2014-1-16 22:24
真心觉得是好贴 点128个赞
作者:
空木葬花
时间:
2014-8-16 17:07
非常感谢楼主!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5