数学建模社区-数学中国

标题: 用SAS实现商业周刊经典风格 对绘图背景进行隔行填色 [打印本页]

作者: 厚积薄发    时间: 2011-6-7 20:16
标题: 用SAS实现商业周刊经典风格 对绘图背景进行隔行填色
d1.png data ex;
7 {6 ]. h+ Y4 b6 iinput x y g color $;
8 b* Y: T: _  R2 q- Wcards;* X* S; ]. i: ~+ S# y; N
1 2 1  Yahoo!7 R4 M( ?6 d4 t4 m  o* k) n
1 4 2 Google0 V$ r* Y- E! W
2 5 1 Yahoo!( A. N- q% P) z
2 8 2 Google
1 G0 n# T( ?6 k4 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 Xdata title_anno;
. t2 J; P, i' }3 v! w1 R! e6 cwhen=’b'; xsys=’3′; ysys=’3′; style=’solid’;
# N2 u# m( c, J& B8 a( F+ Zfunction=’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 Qrun;
; \+ r0 Y$ y: V  udata 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# ifunction=’move’; x=0; y=20; output;
" j2 g( C9 p" ~( efunction=’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  ifunction=’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; Hfunction=’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* _" Pfunction=’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 ]& xfunction=’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: ffunction=’bar’; color=”cxD6CECD”; x=100; y=80; output;
! q8 k; p, C& X- ], G- ^run;
& g/ i7 R1 X! j; u, a8 F. idata 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 SGOPTIONS 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  Zymax=8cm xmax=9cm
/ R" G. e$ m: f# _8 K7 Uhtext=1.5   ;
" N7 y/ o0 v5 [( kaxis1  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( Caxis3 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( Mtitle j=l BCOLOR=black  COLOR=white h=3.5 font=CENTB  ” Bussniess weekly style”;
. a) u! L; r  g4 |( Xtitle2 j=l ” Internation compsdfdsfsfd”;
& @# I5 X& R+ L" A' H# g. ftitle3 j=l ” asdfd asdfdf dfsdfsd”;
% d) e1 m3 m; C8 ilegend1 label=none value=(HEIGHT=1.2 ‘Yahoo!’ ‘Google’ )  POSITION=(inside middle )  OFFSET=(-11,2.5)
1 T. g: \3 w2 d! }: q: E0 ^! lshape=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; Ovbar g / discrete       type=sum$ `5 j# r. q7 {% H- c$ @
sumvar=y
& j0 [7 @8 m1 z( \( [0 xmaxis=axis1 raxis=axis2 GAXIS=axis35 W3 y2 E1 M* a2 N
coutline=gray33  caxis=”cxD6D3B8″& F6 J! t- Q' A& p! F% L+ X
width=42 ]+ 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" ylegend=legend1- g. A* Z2 J. o. m! E' J' a" R! ~
anno=range_anno ;
/ z( }" P" c- _2 J9 Efootnote justify=l h=1 font=swiss “  Data from **group”;
: Z0 J: M& d. ^9 Z/ Kfootnote2 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 d2.gif * }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 `& aFit and confidence plots4 A+ @: ?6 q  V4 Q* O% j* S1 Y
loess, regression, and penalized B-spline curves, and ellipses8 N# n+ p: S) F) w; W2 [$ N. c
Distribution plots
6 p5 z, s0 K. ^9 i1 Q5 Y# kbox 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 together6 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& oinput x y ;
, z# m+ @2 R" E7 mcards;# |+ 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 J4 12
% N  i1 r/ V- ^. T( ]5 11
, D+ g3 G- r: n6 a( I7 j+ j6  9
/ R* K& _0 ^, u! A, [, v# u7  83 ^% 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 pband x=x lower=0 upper=2.5 / OUTLINE  transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
% g6 r( L/ m& W( oband 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 nband x=x lower=5 upper=7.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
; K/ F0 F( T1 `, lband 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 zyaxis values=(0 to 12 by 3)   min=0   max=13 valueshint;
2 f& a: B( Y* A* `8 M! R3 m3 Nxaxis 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