数学建模社区-数学中国

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

作者: 厚积薄发    时间: 2011-6-7 20:16
标题: 用SAS实现商业周刊经典风格 对绘图背景进行隔行填色
d1.png data ex;- A& D6 S; w! [% j1 r3 A
input x y g color $;
9 r: ^, t; N. U: r6 Kcards;
! y0 h$ w1 q' g8 q( F$ I4 T/ z1 2 1  Yahoo!/ M6 w+ G  Q9 x, [
1 4 2 Google
$ q  f1 l+ Y& r. q3 M" T( j6 s2 5 1 Yahoo!
$ E+ j9 W1 N7 p" y' G. @2 8 2 Google
" O) U) w5 R: t; b& s2 @9 Y4 12  1 Yahoo!
& o5 f" J" Y& @+ q4 10 2 Google' ]+ T. |" V* [7 z2 ^3 A1 r, ?
5 9  1 Yahoo!3 @5 n1 H& w& Q) r! U+ B+ h
5 7 2 Google0 m+ w( a& K. W" q2 y+ {7 M6 ~
;. v: H- {. c+ Q- C7 n
data title_anno;
3 p( F. E3 D4 h# F* {- Zwhen=’b'; xsys=’3′; ysys=’3′; style=’solid’;+ O7 ]" P* ]7 i# F! z* h
function=’move’; x=0; y=87;  output;: I+ x6 S  c! ^' Y7 s% `/ |" P, p
function=’bar’; x=100; y=100; color=’black’; output;
9 U! W6 w0 ~8 H" l/ M4 f1 Drun;
  W6 x3 J, Z, c4 U, R+ A, }* \6 [data range_anno;8 S6 S8 z( f, p9 S7 k7 D5 f
when=’b'; xsys=’1′; ysys=’1′; style=’solid’;" ~' G2 o! [) ~  n: ^' n: A
function=’move’; x=0; y=0; output;
3 g* B* h6 T9 t: y1 K5 e" Bfunction=’bar’;  x=100; y=20; color=”cxFFFBDD”;output;
/ N* T. H8 L$ y# k; [$ ~( Cfunction=’move’; x=0; y=20; output;2 @" r, r1 ], `8 N
function=’bar’; color=”cxEEE3B4″; x=100; y=40; output;( M, ~; f* W  C- z. p  g) X) B
function=’move’;x=0; y=40; output;' H  Z7 f9 B( j, ^+ ~
function=’bar’; color=”cxFFFBDD”; x=100; y=60; output;
: M7 u5 W6 D( X" d! C4 g  gfunction=’move’;x=0; y=60; output;" m; e; Q0 r) s  ?! t5 w6 ^
function=’bar’; color=”cxEEE3B4″; x=100; y=80; output;
6 n! D# Y( |$ {% w6 X  o. X! Ifunction=’move’;x=0; y=80; output;
# ^2 ^' G6 s+ D, a* lfunction=’bar’; color=”cxFFFBDD”; x=100; y=100; output;6 {( q+ l1 ], z+ v8 y( k+ O8 }! `2 w) F
run;
6 F. Q" P1 k' W. Qdata range_anno1;" w* Y1 I( n$ {/ c  A5 ^; n
when=’b'; xsys=’1′; ysys=’1′;
4 k( k0 Q' o% p% R, e. J2 z* ?function=’move’; x=0; y=20; output;6 j* x3 R5 e! p
function=’bar’;  x=100; y=20; color=”cxD6CECD”;output;
$ s9 N$ ~- V! y/ lfunction=’move’; x=0; y=40; output;$ [" D8 l" x' |- i: K4 Y6 T. ^
function=’bar’; color=”cxD6CECD”; x=100; y=40; output;
. v4 Q- |4 z) U; A0 m6 i/ w3 ifunction=’move’;x=0; y=60; output;2 m; T- x* A4 c& Y, N) Z$ J, v
function=’bar’; color=”cxD6CECD”; x=100; y=60; output;
1 q6 x. y5 A$ y6 W4 Ifunction=’move’;x=0; y=80; output;
# n7 A* w+ P% Afunction=’bar’; color=”cxD6CECD”; x=100; y=80; output;
; v2 s- H1 L; z! x+ d' drun;, c7 u( k& y$ U. m
data range_anno;
1 V( l# S( A8 aset range_anno range_anno1;
/ y8 v: c) P' }/ p+ m2 A3 U6 s  h3 q5 nrun;
( {5 M3 g+ A* Y8 C& j7 [FILENAME file “c:\bussiness.png”;- a6 l9 `8 p2 B8 k
GOPTIONS reset=all noborder  Cback=”cxEEE3B4″ device=png  gsfname=file
: p# R4 U, F( Z+ O# X. u8 z& Yvsize=7cm hsize=7cm+ }" d! v) q- o3 k) `; f8 f
ymax=8cm xmax=9cm
8 F( \4 ^" p# @+ A4 hhtext=1.5   ;  ?% Y( q3 y$ g( v
axis1  major=none width=2 label=none  REFLABEL=none value=(h=1 color=black “Q1″ “Q2″ “Q3″ “Q4″ ) offset=(4,4);
4 ~  @0 j, y. R; V* {( N& X/ _/ kaxis2 color=black width=2 label=none order=(0 to 13 by 4) minor=none major=(h=1)  value=(h=1.0) offset=(0,2);
! J% Q4 ]$ L3 Q" ]( n) raxis3 major=none label=none value=none;
- I& |+ R" @( \* ^$ r. @+ jpattern1 v=s color=’cxFF8E00′;, h, W$ ]% s7 c) p6 R
pattern2 v=s color=’cx004C7A’;
7 B/ `4 {6 O" Otitle j=l BCOLOR=black  COLOR=white h=3.5 font=CENTB  ” Bussniess weekly style”;
% Z& m' G: o7 Z0 Q7 atitle2 j=l ” Internation compsdfdsfsfd”;  ^+ V. h8 b: Q, p5 ~
title3 j=l ” asdfd asdfdf dfsdfsd”;  d) m! z1 S' ~' b& I4 H; }
legend1 label=none value=(HEIGHT=1.2 ‘Yahoo!’ ‘Google’ )  POSITION=(inside middle )  OFFSET=(-11,2.5)
6 P7 f8 E. v* v/ q' W4 wshape=bar(.1in,.1in);" m/ E$ v: @# F( ^3 Q) h. P
proc gchart data=ex anno=title_anno;
% D% J' ~3 U, y& C/ qvbar g / discrete       type=sum
- v' e! g8 z0 \sumvar=y7 T+ j  A* e8 C( v
maxis=axis1 raxis=axis2 GAXIS=axis3" R( ^6 }2 w0 M
coutline=gray33  caxis=”cxD6D3B8″( ~) V! H! s* w2 d8 U$ l
width=4
7 T  D* m3 c5 f, w  r  Jspace=0& R$ A' [! K4 n* d9 Q5 }* I
gspace=0- ?" u4 v0 i. E4 d7 P
subgroup= color
6 J* ]" r+ s6 K; @group=x
/ l; {/ t/ D3 U8 x8 olegend=legend1" W# S  {% B& E( V1 f- e2 i0 {
anno=range_anno ;2 Q2 J* U& v- B! o2 p& g
footnote justify=l h=1 font=swiss “  Data from **group”;
$ P$ n2 I/ U3 \* C3 @footnote2 justify=l h=1 font=swiss “  http://sxlion.blog.sohu.com”;
. ~- g( K- }5 W$ A9 krun;
2 n0 N! ^: t( i) T  W2 uquit;9 l! Y! h2 I" M2 V) n
下面是excelpro博客介绍的经典商业周刊风格的图表,对比一下相差无几。$ z" G3 d2 r3 ~0 f" N& v) e
这代码是相当的复杂,调试也比较费功夫。# A7 M1 L- K) D/ l/ C" I
d2.gif
+ {) P, }$ `# G" p本来准备在sgplot的band语句画区域作为背景来实现的,但是由于存在bar图与band不兼容的情况,于是只好转向anno了。见SAS公司详细说明。4 d% T2 L( d8 X9 ]9 W
There are four basic types of plots that you can create with the SGPLOT procedure:
$ z' }% c. g! S) s5 \3 qBasic plots
- ~2 Q  v, N- t' E' vscatter, series, step, band, needle, and vector plots. X$ U; S; P8 a
Fit and confidence plots
8 p* A$ r, ~6 k' xloess, regression, and penalized B-spline curves, and ellipses
2 J! i( D( P) Z7 e8 [Distribution plots3 s9 R  |6 d7 S- Z3 _1 g
box plots, histograms, and normal and kernel density estimates3 t5 e9 H  }0 F
Categorization plots& J, |2 C' X, m5 b! }& _
dot plots, bar charts, and line plots
2 Z, `9 M5 F  ]' e6 ~# n! S( g) D) yNot 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
! s' ]: R% K& s5 {7 x/ _
, u3 ~, u# Z$ c: @0 j+ r. X$ F
data ex;
# V; ^! G5 @; [; e1 dinput x y ;
* b( m4 N. i; j- o; Acards;
! K: _# g2 m2 i8 r5 C# i1 2  j- {5 |/ P' q( S" ]
2 7
, {+ |" I8 c* o& G" p4 12+ T, j4 S/ X+ K
5 11" r6 ]# F5 D1 c' h
6  95 a$ a: f4 s2 P- z* D# x
7  8+ @8 B- C/ }9 k! u' F9 ^
;
; @* u0 G. Q7 a- r2 Ititle ;/ y( _! T, j# d2 ~9 X
footnote;. C# i$ K+ D* y( G, B
proc sgplot data=ex noautolegend;
. x) v; X# r) K1 b2 e: pSERIES  x=x y=y/LINEATTRS=(color=blue thickness=6) ;: f  A) k- F, H% ~1 H
band x=x lower=0 upper=2.5 / OUTLINE  transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
+ k2 O( }$ \' o- wband x=x lower=2.5 upper=5  / OUTLINE transparency=.7 LINEATTRS=(color=black) fillattrs=(color=orange) NOOUTLINE;3 j& F9 p4 m9 n) d) L" M5 T
band x=x lower=5 upper=7.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
% U: E: O9 E& c" @4 J- B) Hband x=x lower=7.5 upper=10  / OUTLINE transparency=.7 LINEATTRS=(color=black) fillattrs=(color=orange) NOOUTLINE;
- v0 Y; ?" g* @) H7 P: B7 Dband x=x lower=10 upper=12.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;; a; E2 S9 K2 l. }" l8 m" r4 S
yaxis values=(0 to 12 by 3)   min=0   max=13 valueshint;
' v5 z+ M' n  o( cxaxis values=(0 to 8 by 2)   min=0   max=8 valueshint;
3 h( X* b# b/ F8 f8 N/ wrun;
7 Q+ T- W' @4 Z. L1 E0 N9 C$ s来源:数据挖掘学院
作者: 平平凡凡的我    时间: 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