数学建模社区-数学中国

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

作者: 厚积薄发    时间: 2011-6-7 20:16
标题: 用SAS实现商业周刊经典风格 对绘图背景进行隔行填色
d1.png data ex;2 J7 G( H  g) v
input x y g color $;
+ r6 E5 K& d. D1 Xcards;( y5 l3 E! A5 `' h3 }
1 2 1  Yahoo!
4 u. v% \* D7 j$ E  r" y1 4 2 Google
4 d4 K8 Y) H& X2 h% P2 X2 5 1 Yahoo!
! p6 o# w7 g( o2 8 2 Google6 q6 N% u/ }! a1 [
4 12  1 Yahoo!
: P4 Z4 `) ?& _4 10 2 Google
% z5 H, U- o! v5 9  1 Yahoo!- {2 O8 n" j1 j8 o4 a/ |7 x
5 7 2 Google, I' E+ o0 X& N5 n6 [1 I; s, }% m$ B" M
;5 }4 A% _; u1 R3 Z9 M, Q3 b0 s" H2 J
data title_anno;
$ h7 Y# n0 e6 ~+ A: m$ qwhen=’b'; xsys=’3′; ysys=’3′; style=’solid’;
; \. O3 l- z* k) r8 lfunction=’move’; x=0; y=87;  output;
5 Q6 F  D) a9 o. l7 U1 Qfunction=’bar’; x=100; y=100; color=’black’; output;
% n2 J- Q1 C* yrun;& ^3 ]2 M# x6 ^$ C* L
data range_anno;  ~( }- n1 X4 w3 w. I
when=’b'; xsys=’1′; ysys=’1′; style=’solid’;2 c( g: n$ w+ Z' Y2 ~
function=’move’; x=0; y=0; output;2 D- h6 C/ E7 m' Z( p
function=’bar’;  x=100; y=20; color=”cxFFFBDD”;output;
1 H% X1 z3 D  Kfunction=’move’; x=0; y=20; output;4 N$ G" _, w% Z+ s
function=’bar’; color=”cxEEE3B4″; x=100; y=40; output;
' Y# O0 P1 W) t# p; z, Ofunction=’move’;x=0; y=40; output;
7 d/ H6 ~) l1 M- z" Pfunction=’bar’; color=”cxFFFBDD”; x=100; y=60; output;' {% m  |7 K( g, m
function=’move’;x=0; y=60; output;2 ~* ^$ s7 x% j3 ^- I; r+ W2 E
function=’bar’; color=”cxEEE3B4″; x=100; y=80; output;5 `4 B. U/ Z. c* D! T
function=’move’;x=0; y=80; output;4 H5 [! }$ R1 V4 K! K
function=’bar’; color=”cxFFFBDD”; x=100; y=100; output;$ S' Z, E& h6 o/ s$ _8 J  O
run;
  p% k6 ^" i& {1 J* f+ ~data range_anno1;, q- P; Y. K; r# Y# S" w
when=’b'; xsys=’1′; ysys=’1′;
3 w  {0 S* |( k% _/ p1 q9 {function=’move’; x=0; y=20; output;! z+ H: Q$ [, i2 i
function=’bar’;  x=100; y=20; color=”cxD6CECD”;output;. z( `3 l7 r; G8 b$ G4 A
function=’move’; x=0; y=40; output;
' c7 E: d( h. ~$ H, n" Cfunction=’bar’; color=”cxD6CECD”; x=100; y=40; output;
( G, x0 j& ?0 i5 |function=’move’;x=0; y=60; output;4 Y9 H, t- n+ I0 i
function=’bar’; color=”cxD6CECD”; x=100; y=60; output;
4 a* j9 p, X7 o) Zfunction=’move’;x=0; y=80; output;
, y5 Q, C( `! \+ c: G5 U/ Ufunction=’bar’; color=”cxD6CECD”; x=100; y=80; output;& N- ?* H# P% f  p
run;3 F7 y1 Z9 D, r% s! v7 u4 U
data range_anno;
2 i1 A, F8 a/ g* e2 u+ }* O+ _. \set range_anno range_anno1;+ R( q% G$ P! K, b' |" `
run;
$ A! l. j7 p/ s, j& Y; W" P" E# b) uFILENAME file “c:\bussiness.png”;
& m+ S  T& ]& s! SGOPTIONS reset=all noborder  Cback=”cxEEE3B4″ device=png  gsfname=file+ b6 u5 @( L1 @$ J/ J
vsize=7cm hsize=7cm& I0 p# a  n6 p4 ~
ymax=8cm xmax=9cm
  X( p3 r( Z% j! y  ]/ bhtext=1.5   ;  r8 s6 E5 `4 d
axis1  major=none width=2 label=none  REFLABEL=none value=(h=1 color=black “Q1″ “Q2″ “Q3″ “Q4″ ) offset=(4,4);
; X% S2 t* I  |1 daxis2 color=black width=2 label=none order=(0 to 13 by 4) minor=none major=(h=1)  value=(h=1.0) offset=(0,2);: n) F) N. k; r8 L, s* T2 [
axis3 major=none label=none value=none;
! m- G1 M6 [8 ?0 cpattern1 v=s color=’cxFF8E00′;
+ b( W6 a5 b  e, S2 `1 v. ypattern2 v=s color=’cx004C7A’;! t, I8 G. H/ {! v1 p% {
title j=l BCOLOR=black  COLOR=white h=3.5 font=CENTB  ” Bussniess weekly style”;, r- }) {  o$ M) u3 r
title2 j=l ” Internation compsdfdsfsfd”;) k% j4 v0 }) ]( _" o/ ^6 B
title3 j=l ” asdfd asdfdf dfsdfsd”;
: B1 G. h3 o. _) b/ [legend1 label=none value=(HEIGHT=1.2 ‘Yahoo!’ ‘Google’ )  POSITION=(inside middle )  OFFSET=(-11,2.5)9 x% ]0 y$ [8 @4 _
shape=bar(.1in,.1in);8 q" L( L9 c. F7 k, e% L" y
proc gchart data=ex anno=title_anno;
& s; \+ I+ \1 L1 c* Lvbar g / discrete       type=sum0 `6 A' n, S$ w( {
sumvar=y
) u" t+ t- x% b# V& amaxis=axis1 raxis=axis2 GAXIS=axis3" b4 V4 m7 [- j
coutline=gray33  caxis=”cxD6D3B8″
7 K8 X, T5 t: b1 `' A% k& Owidth=4
% X$ T2 F: h- Lspace=0! d! R) L$ |; t( o
gspace=0
4 w- E# }( b% ~6 ysubgroup= color. a9 y, y4 T" [
group=x
( j) W1 A! l& n' olegend=legend1
+ A' {6 y4 t& L& h. ]) Nanno=range_anno ;2 |) B5 L/ J! W, T/ ?
footnote justify=l h=1 font=swiss “  Data from **group”;: @9 ~- A" O3 m  `# c# {& [
footnote2 justify=l h=1 font=swiss “  http://sxlion.blog.sohu.com”;) ~/ i5 V8 _: U/ G% S5 H7 U2 N
run;6 I9 \" f; i8 g, I5 u* w
quit;
5 \7 l5 R$ B1 j' z2 l! o. U下面是excelpro博客介绍的经典商业周刊风格的图表,对比一下相差无几。
. J4 S, c. E# C, H& O. x& H3 w) b这代码是相当的复杂,调试也比较费功夫。
/ g# E7 ]4 Q/ f- ^/ l d2.gif # q: a5 m1 B- z1 X% N! J
本来准备在sgplot的band语句画区域作为背景来实现的,但是由于存在bar图与band不兼容的情况,于是只好转向anno了。见SAS公司详细说明。
( ^) d% b. Z+ GThere are four basic types of plots that you can create with the SGPLOT procedure:
2 Q/ ~' c( n; G1 c0 v8 nBasic plots+ x: K) }: t2 R5 V% p2 u
scatter, series, step, band, needle, and vector plots7 ?% \5 L8 |& _2 X2 _8 k
Fit and confidence plots% }3 |, W5 f1 f' O, N6 \! Q3 I7 ]. F
loess, regression, and penalized B-spline curves, and ellipses
+ c9 e( C' @- H1 K" V8 `+ PDistribution plots
% M, {. L1 K. O* s2 G& A# N8 z) F" kbox plots, histograms, and normal and kernel density estimates
1 d/ N/ M( \3 R4 d1 QCategorization plots! \) g7 d4 K5 r3 d3 r8 Y% k- e
dot plots, bar charts, and line plots& h4 K+ f0 r8 r9 I9 u! i+ b0 s% j
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 together3 l6 S" Q7 D9 V! p# y& s7 r) j9 Q& B

; c/ [& n" g. ?8 o3 F* [
- q. a% N- @" bdata ex;
+ @: C* W# \. m5 M$ a) `0 Ginput x y ;. E! {+ d/ a- R0 A% e5 i$ B
cards;# A- \9 B" |: I% p' Z
1 2
- a2 B- L4 z$ K* O, y4 E2 72 @. ~& A6 g& d5 s+ ]& T* l  B1 x
4 12# c! U5 R+ J/ j- O3 Z
5 11
9 {; {! {7 I/ J6  9) q4 K: g- |. q0 o0 J" K
7  8
- q2 a+ s/ S( M+ T( V( U;5 F- [; k6 b* [5 {2 z- M8 l
title ;1 U& `2 J4 k4 ]! N9 ^$ g7 r6 X
footnote;
5 s& \; f8 T; s8 o- u: jproc sgplot data=ex noautolegend;( K6 \& z7 {# {8 @) W1 [8 V
SERIES  x=x y=y/LINEATTRS=(color=blue thickness=6) ;5 B4 h5 f) a8 o6 f
band x=x lower=0 upper=2.5 / OUTLINE  transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;" e! J+ t& N+ i# y# W
band x=x lower=2.5 upper=5  / OUTLINE transparency=.7 LINEATTRS=(color=black) fillattrs=(color=orange) NOOUTLINE;$ J  D$ i3 Z2 Z" u) e; G0 d
band x=x lower=5 upper=7.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;/ h7 K. B% f* X7 e4 W1 |
band x=x lower=7.5 upper=10  / OUTLINE transparency=.7 LINEATTRS=(color=black) fillattrs=(color=orange) NOOUTLINE;
' p1 F$ a# U6 Z6 d7 {1 c& gband x=x lower=10 upper=12.5 /OUTLINE transparency=.8 LINEATTRS=(color=black) fillattrs=(color=cxEEE3B4) NOOUTLINE;
) n. T) A, Q5 m. }yaxis values=(0 to 12 by 3)   min=0   max=13 valueshint;
! _% v4 Q# `* S8 q3 j/ ~xaxis values=(0 to 8 by 2)   min=0   max=8 valueshint;
1 d$ R6 f' i9 g+ s/ o' arun;. |0 r, m2 t; ]: v
来源:数据挖掘学院
作者: 平平凡凡的我    时间: 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