Data visualization with SAS programming

Fun With SAS ODS Graphics: Betsy Ross Edition

Reply
Highlighted
Occasional Contributor
Posts: 5

Re: Fun With SAS ODS Graphics: Betsy Ross Edition

Bretagne !

bzh.png

 

 

 

 

 

/* Ermine */
proc sql;
   create table WORK.BZH (x int, y int)
   ;
   insert into WORK.BZH
values(20,99) values(21,99) values(22,99) values(23,99) values(24,99) values(25,99) values(26,99) values(18,98) values(19,98) values(20,98) values(21,98) values(22,98) 
values(23,98) values(24,98) values(25,98) values(26,98) values(27,98) values(28,98) values(17,97) values(18,97) values(19,97) values(20,97) values(21,97) values(22,97) 
values(23,97) values(24,97) values(25,97) values(26,97) values(27,97) values(28,97) values(29,97) values(16,96) values(17,96) values(18,96) values(19,96) values(20,96) 
values(21,96) values(22,96) values(23,96) values(24,96) values(25,96) values(26,96) values(27,96) values(28,96) values(29,96) values(30,96) values(15,95) values(16,95) 
values(17,95) values(18,95) values(19,95) values(20,95) values(21,95) values(22,95) values(23,95) values(24,95) values(25,95) values(26,95) values(27,95) values(28,95) 
values(29,95) values(30,95) values(15,94) values(16,94) values(17,94) values(18,94) values(19,94) values(20,94) values(21,94) values(22,94) values(23,94) values(24,94) 
values(25,94) values(26,94) values(27,94) values(28,94) values(29,94) values(30,94) values(31,94) values(14,93) values(15,93) values(16,93) values(17,93) values(18,93) 
values(19,93) values(20,93) values(21,93) values(22,93) values(23,93) values(24,93) values(25,93) values(26,93) values(27,93) values(28,93) values(29,93) values(30,93) 
values(31,93) values(14,92) values(15,92) values(16,92) values(17,92) values(18,92) values(19,92) values(20,92) values(21,92) values(22,92) values(23,92) values(24,92) 
values(25,92) values(26,92) values(27,92) values(28,92) values(29,92) values(30,92) values(31,92) values(14,91) values(15,91) values(16,91) values(17,91) values(18,91) 
values(19,91) values(20,91) values(21,91) values(22,91) values(23,91) values(24,91) values(25,91) values(26,91) values(27,91) values(28,91) values(29,91) values(30,91) 
values(31,91) values(14,90) values(15,90) values(16,90) values(17,90) values(18,90) values(19,90) values(20,90) values(21,90) values(22,90) values(23,90) values(24,90) 
values(25,90) values(26,90) values(27,90) values(28,90) values(29,90) values(30,90) values(31,90) values(14,89) values(15,89) values(16,89) values(17,89) values(18,89) 
values(19,89) values(20,89) values(21,89) values(22,89) values(23,89) values(24,89) values(25,89) values(26,89) values(27,89) values(28,89) values(29,89) values(30,89) 
values(31,89) values(14,88) values(15,88) values(16,88) values(17,88) values(18,88) values(19,88) values(20,88) values(21,88) values(22,88) values(23,88) values(24,88) 
values(25,88) values(26,88) values(27,88) values(28,88) values(29,88) values(30,88) values(31,88) values(15,87) values(16,87) values(17,87) values(18,87) values(19,87) 
values(20,87) values(21,87) values(22,87) values(23,87) values(24,87) values(25,87) values(26,87) values(27,87) values(28,87) values(29,87) values(30,87) values(31,87) 
values(15,86) values(16,86) values(17,86) values(18,86) values(19,86) values(20,86) values(21,86) values(22,86) values(23,86) values(24,86) values(25,86) values(26,86) 
values(27,86) values(28,86) values(29,86) values(30,86) values(16,85) values(17,85) values(18,85) values(19,85) values(20,85) values(21,85) values(22,85) values(23,85) 
values(24,85) values(25,85) values(26,85) values(27,85) values(28,85) values(29,85) values(17,84) values(18,84) values(19,84) values(20,84) values(21,84) values(22,84) 
values(23,84) values(24,84) values(25,84) values(26,84) values(27,84) values(28,84) values(29,84) values(18,83) values(19,83) values(20,83) values(21,83) values(22,83) 
values(23,83) values(24,83) values(25,83) values(26,83) values(27,83) values(6,82) values(7,82) values(8,82) values(9,82) values(10,82) values(11,82) values(20,82) 
values(21,82) values(22,82) values(23,82) values(24,82) values(25,82) values(34,82) values(35,82) values(36,82) values(37,82) values(38,82) values(39,82) values(4,81) 
values(5,81) values(6,81) values(7,81) values(8,81) values(9,81) values(10,81) values(11,81) values(12,81) values(13,81) values(32,81) values(33,81) values(34,81) 
values(35,81) values(36,81) values(37,81) values(38,81) values(39,81) values(40,81) values(41,81) values(3,80) values(4,80) values(5,80) values(6,80) values(7,80) 
values(8,80) values(9,80) values(10,80) values(11,80) values(12,80) values(13,80) values(14,80) values(31,80) values(32,80) values(33,80) values(34,80) values(35,80) 
values(36,80) values(37,80) values(38,80) values(39,80) values(40,80) values(41,80) values(42,80) values(43,80) values(2,79) values(3,79) values(4,79) values(5,79) 
values(6,79) values(7,79) values(8,79) values(9,79) values(10,79) values(11,79) values(12,79) values(13,79) values(14,79) values(15,79) values(30,79) values(31,79) 
values(32,79) values(33,79) values(34,79) values(35,79) values(36,79) values(37,79) values(38,79) values(39,79) values(40,79) values(41,79) values(42,79) values(43,79) 
values(1,78) values(2,78) values(3,78) values(4,78) values(5,78) values(6,78) values(7,78) values(8,78) values(9,78) values(10,78) values(11,78) values(12,78) values(13,78) 
values(14,78) values(15,78) values(16,78) values(29,78) values(30,78) values(31,78) values(32,78) values(33,78) values(34,78) values(35,78) values(36,78) values(37,78) 
values(38,78) values(39,78) values(40,78) values(41,78) values(42,78) values(43,78) values(44,78) values(1,77) values(2,77) values(3,77) values(4,77) values(5,77) 
values(6,77) values(7,77) values(8,77) values(9,77) values(10,77) values(11,77) values(12,77) values(13,77) values(14,77) values(15,77) values(16,77) values(21,77) 
values(22,77) values(23,77) values(24,77) values(29,77) values(30,77) values(31,77) values(32,77) values(33,77) values(34,77) values(35,77) values(36,77) values(37,77) 
values(38,77) values(39,77) values(40,77) values(41,77) values(42,77) values(43,77) values(44,77) values(45,77) values(0,76) values(1,76) values(2,76) values(3,76) values(4,76) 
values(5,76) values(6,76) values(7,76) values(8,76) values(9,76) values(10,76) values(11,76) values(12,76) values(13,76) values(14,76) values(15,76) values(16,76) values(17,76) 
values(21,76) values(22,76) values(23,76) values(24,76) values(29,76) values(30,76) values(31,76) values(32,76) values(33,76) values(34,76) values(35,76) values(36,76) values(37,76) 
values(38,76) values(39,76) values(40,76) values(41,76) values(42,76) values(43,76) values(44,76) values(45,76) values(0,75) values(1,75) values(2,75) values(3,75) values(4,75) 
values(5,75) values(6,75) values(7,75) values(8,75) values(9,75) values(10,75) values(11,75) values(12,75) values(13,75) values(14,75) values(15,75) values(16,75) values(17,75) 
values(21,75) values(22,75) values(23,75) values(24,75) values(28,75) values(29,75) values(30,75) values(31,75) values(32,75) values(33,75) values(34,75) values(35,75) 
values(36,75) values(37,75) values(38,75) values(39,75) values(40,75) values(41,75) values(42,75) values(43,75) values(44,75) values(45,75) values(0,74) values(1,74) 
values(2,74) values(3,74) values(4,74) values(5,74) values(6,74) values(7,74) values(8,74) values(9,74) values(10,74) values(11,74) values(12,74) values(13,74) values(14,74) 
values(15,74) values(16,74) values(17,74) values(21,74) values(22,74) values(23,74) values(24,74) values(28,74) values(29,74) values(30,74) values(31,74) values(32,74) values(33,74) 
values(34,74) values(35,74) values(36,74) values(37,74) values(38,74) values(39,74) values(40,74) values(41,74) values(42,74) values(43,74) values(44,74) values(45,74) values(46,74) 
values(0,73) values(1,73) values(2,73) values(3,73) values(4,73) values(5,73) values(6,73) values(7,73) values(8,73) values(9,73) values(10,73) values(11,73) values(12,73) values(13,73) 
values(14,73) values(15,73) values(16,73) values(17,73) values(21,73) values(22,73) values(23,73) values(24,73) values(28,73) values(29,73) values(30,73) values(31,73) values(32,73) 
values(33,73) values(34,73) values(35,73) values(36,73) values(37,73) values(38,73) values(39,73) values(40,73) values(41,73) values(42,73) values(43,73) values(44,73) values(45,73) 
values(46,73) values(0,72) values(1,72) values(2,72) values(3,72) values(4,72) values(5,72) values(6,72) values(7,72) values(8,72) values(9,72) values(10,72) values(11,72) values(12,72) 
values(13,72) values(14,72) values(15,72) values(16,72) values(17,72) values(20,72) values(21,72) values(22,72) values(23,72) values(24,72) values(28,72) values(29,72) values(30,72) 
values(31,72) values(32,72) values(33,72) values(34,72) values(35,72) values(36,72) values(37,72) values(38,72) values(39,72) values(40,72) values(41,72) values(42,72) values(43,72) 
values(44,72) values(45,72) values(0,71) values(1,71) values(2,71) values(3,71) values(4,71) values(5,71) values(6,71) values(7,71) values(8,71) values(9,71) values(10,71) values(11,71) 
values(12,71) values(13,71) values(14,71) values(15,71) values(16,71) values(17,71) values(20,71) values(21,71) values(22,71) values(23,71) values(24,71) values(28,71) values(29,71) 
values(30,71) values(31,71) values(32,71) values(33,71) values(34,71) values(35,71) values(36,71) values(37,71) values(38,71) values(39,71) values(40,71) values(41,71) values(42,71) 
values(43,71) values(44,71) values(45,71) values(1,70) values(2,70) values(3,70) values(4,70) values(5,70) values(6,70) values(7,70) values(8,70) values(9,70) values(10,70) values(11,70) 
values(12,70) values(13,70) values(14,70) values(15,70) values(16,70) values(17,70) values(20,70) values(21,70) values(22,70) values(23,70) values(24,70) values(29,70) values(30,70) 
values(31,70) values(32,70) values(33,70) values(34,70) values(35,70) values(36,70) values(37,70) values(38,70) values(39,70) values(40,70) values(41,70) values(42,70) values(43,70) 
values(44,70) values(45,70) values(1,69) values(2,69) values(3,69) values(4,69) values(5,69) values(6,69) values(7,69) values(8,69) values(9,69) values(10,69) values(11,69) values(12,69) 
values(13,69) values(14,69) values(15,69) values(16,69) values(20,69) values(21,69) values(22,69) values(23,69) values(24,69) values(29,69) values(30,69) values(31,69) values(32,69) 
values(33,69) values(34,69) values(35,69) values(36,69) values(37,69) values(38,69) values(39,69) values(40,69) values(41,69) values(42,69) values(43,69) values(44,69) values(2,68) 
values(3,68) values(4,68) values(5,68) values(6,68) values(7,68) values(8,68) values(9,68) values(10,68) values(11,68) values(12,68) values(13,68) values(14,68) values(15,68) values(20,68) 
values(21,68) values(22,68) values(23,68) values(24,68) values(30,68) values(31,68) values(32,68) values(33,68) values(34,68) values(35,68) values(36,68) values(37,68) values(38,68) 
values(39,68) values(40,68) values(41,68) values(42,68) values(43,68) values(44,68) values(3,67) values(4,67) values(5,67) values(6,67) values(7,67) values(8,67) values(9,67) values(10,67) 
values(11,67) values(12,67) values(13,67) values(14,67) values(15,67) values(20,67) values(21,67) values(22,67) values(23,67) values(24,67) values(31,67) values(32,67) values(33,67) 
values(34,67) values(35,67) values(36,67) values(37,67) values(38,67) values(39,67) values(40,67) values(41,67) values(42,67) values(43,67) values(4,66) values(5,66) values(6,66) 
values(7,66) values(8,66) values(9,66) values(10,66) values(11,66) values(12,66) values(13,66) values(20,66) values(21,66) values(22,66) values(23,66) values(24,66) values(32,66) 
values(33,66) values(34,66) values(35,66) values(36,66) values(37,66) values(38,66) values(39,66) values(40,66) values(41,66) values(42,66) values(5,65) values(6,65) values(7,65) 
values(8,65) values(9,65) values(10,65) values(11,65) values(12,65) values(20,65) values(21,65) values(22,65) values(23,65) values(24,65) values(25,65) values(34,65) values(35,65) 
values(36,65) values(37,65) values(38,65) values(39,65) values(40,65) values(19,64) values(20,64) values(21,64) values(22,64) values(23,64) values(24,64) values(25,64) values(19,63) 
values(20,63) values(21,63) values(22,63) values(23,63) values(24,63) values(25,63) values(19,62) values(20,62) values(21,62) values(22,62) values(23,62) values(24,62) values(25,62) 
values(19,61) values(20,61) values(21,61) values(22,61) values(23,61) values(24,61) values(25,61) values(19,60) values(20,60) values(21,60) values(22,60) values(23,60) values(24,60) 
values(25,60) values(26,60) values(18,59) values(19,59) values(20,59) values(21,59) values(22,59) values(23,59) values(24,59) values(25,59) values(26,59) values(18,58) values(19,58) 
values(20,58) values(21,58) values(22,58) values(23,58) values(24,58) values(25,58) values(26,58) values(18,57) values(19,57) values(20,57) values(21,57) values(22,57) values(23,57) 
values(24,57) values(25,57) values(26,57) values(18,56) values(19,56) values(20,56) values(21,56) values(22,56) values(23,56) values(24,56) values(25,56) values(26,56) values(18,55) 
values(19,55) values(20,55) values(21,55) values(22,55) values(23,55) values(24,55) values(25,55) values(26,55) values(27,55) values(17,54) values(18,54) values(19,54) values(20,54) 
values(21,54) values(22,54) values(23,54) values(24,54) values(25,54) values(26,54) values(27,54) values(17,53) values(18,53) values(19,53) values(20,53) values(21,53) values(22,53) 
values(23,53) values(24,53) values(25,53) values(26,53) values(27,53) values(17,52) values(18,52) values(19,52) values(20,52) values(21,52) values(22,52) values(23,52) values(24,52) 
values(25,52) values(26,52) values(27,52) values(17,51) values(18,51) values(19,51) values(20,51) values(21,51) values(22,51) values(23,51) values(24,51) values(25,51) values(26,51) 
values(27,51) values(28,51) values(16,50) values(17,50) values(18,50) values(19,50) values(20,50) values(21,50) values(22,50) values(23,50) values(24,50) values(25,50) values(26,50) 
values(27,50) values(28,50) values(16,49) values(17,49) values(18,49) values(19,49) values(20,49) values(21,49) values(22,49) values(23,49) values(24,49) values(25,49) values(26,49) 
values(27,49) values(28,49) values(16,48) values(17,48) values(18,48) values(19,48) values(20,48) values(21,48) values(22,48) values(23,48) values(24,48) values(25,48) values(26,48) 
values(27,48) values(28,48) values(16,47) values(17,47) values(18,47) values(19,47) values(20,47) values(21,47) values(22,47) values(23,47) values(24,47) values(25,47) values(26,47) 
values(27,47) values(28,47) values(29,47) values(15,46) values(16,46) values(17,46) values(18,46) values(19,46) values(20,46) values(21,46) values(22,46) values(23,46) values(24,46) 
values(25,46) values(26,46) values(27,46) values(28,46) values(29,46) values(15,45) values(16,45) values(17,45) values(18,45) values(19,45) values(20,45) values(21,45) values(22,45) 
values(23,45) values(24,45) values(25,45) values(26,45) values(27,45) values(28,45) values(29,45) values(15,44) values(16,44) values(17,44) values(18,44) values(19,44) values(20,44) 
values(21,44) values(22,44) values(23,44) values(24,44) values(25,44) values(26,44) values(27,44) values(28,44) values(29,44) values(30,44) values(14,43) values(15,43) values(16,43) 
values(17,43) values(18,43) values(19,43) values(20,43) values(21,43) values(22,43) values(23,43) values(24,43) values(25,43) values(26,43) values(27,43) values(28,43) values(29,43) 
values(30,43) values(14,42) values(15,42) values(16,42) values(17,42) values(18,42) values(19,42) values(20,42) values(21,42) values(22,42) values(23,42) values(24,42) values(25,42) 
values(26,42) values(27,42) values(28,42) values(29,42) values(30,42) values(14,41) values(15,41) values(16,41) values(17,41) values(18,41) values(19,41) values(20,41) values(21,41) 
values(22,41) values(23,41) values(24,41) values(25,41) values(26,41) values(27,41) values(28,41) values(29,41) values(30,41) values(31,41) values(13,40) values(14,40) values(15,40) 
values(16,40) values(17,40) values(18,40) values(19,40) values(20,40) values(21,40) values(22,40) values(23,40) values(24,40) values(25,40) values(26,40) values(27,40) values(28,40) 
values(29,40) values(30,40) values(31,40) values(13,39) values(14,39) values(15,39) values(16,39) values(17,39) values(18,39) values(19,39) values(20,39) values(21,39) values(22,39) 
values(23,39) values(24,39) values(25,39) values(26,39) values(27,39) values(28,39) values(29,39) values(30,39) values(31,39) values(13,38) values(14,38) values(15,38) values(16,38) 
values(17,38) values(18,38) values(19,38) values(20,38) values(21,38) values(22,38) values(23,38) values(24,38) values(25,38) values(26,38) values(27,38) values(28,38) values(29,38) 
values(30,38) values(31,38) values(32,38) values(12,37) values(13,37) values(14,37) values(15,37) values(16,37) values(17,37) values(18,37) values(19,37) values(20,37) values(21,37) 
values(22,37) values(23,37) values(24,37) values(25,37) values(26,37) values(27,37) values(28,37) values(29,37) values(30,37) values(31,37) values(32,37) values(12,36) values(13,36) 
values(14,36) values(15,36) values(16,36) values(17,36) values(18,36) values(19,36) values(20,36) values(21,36) values(22,36) values(23,36) values(24,36) values(25,36) values(26,36) 
values(27,36) values(28,36) values(29,36) values(30,36) values(31,36) values(32,36) values(12,35) values(13,35) values(14,35) values(15,35) values(16,35) values(17,35) values(18,35) 
values(19,35) values(20,35) values(21,35) values(22,35) values(23,35) values(24,35) values(25,35) values(26,35) values(27,35) values(28,35) values(29,35) values(30,35) values(31,35) 
values(32,35) values(11,34) values(12,34) values(13,34) values(14,34) values(15,34) values(16,34) values(17,34) values(18,34) values(19,34) values(20,34) values(21,34) values(22,34) 
values(23,34) values(24,34) values(25,34) values(26,34) values(27,34) values(28,34) values(29,34) values(30,34) values(31,34) values(32,34) values(33,34) values(11,33) values(12,33) values(13,33) values(14,33) values(15,33) values(16,33) values(17,33) values(18,33) values(19,33) values(20,33) values(21,33) values(22,33) values(23,33) values(24,33) values(25,33) values(26,33) values(27,33) values(28,33) values(29,33) values(30,33) values(31,33) values(32,33) values(33,33) values(11,32) values(12,32) values(13,32) values(14,32) values(15,32) values(16,32) values(17,32) values(18,32) values(19,32) values(20,32) values(21,32) values(22,32) values(23,32) values(24,32) values(25,32) values(26,32) values(27,32) values(28,32) values(29,32) values(30,32) values(31,32) values(32,32) values(33,32) values(34,32) values(10,31) values(11,31) values(12,31) values(13,31) values(14,31) values(15,31) values(16,31) values(17,31) values(18,31) values(19,31) values(20,31) values(21,31) values(22,31) values(23,31) values(24,31) values(25,31) values(26,31) values(27,31) values(28,31) values(29,31) values(30,31) values(31,31) values(32,31) values(33,31) values(34,31) values(10,30) values(11,30) values(12,30) values(13,30) values(14,30) values(15,30) values(16,30) values(17,30) values(18,30) values(19,30) values(20,30) values(21,30) values(22,30) values(23,30) values(24,30) values(25,30) values(26,30) values(27,30) values(28,30) values(29,30) values(30,30) values(31,30) values(32,30) values(33,30) values(34,30) values(10,29) values(11,29) values(12,29) values(13,29) values(14,29) values(15,29) values(16,29) values(17,29) values(18,29) values(19,29) values(20,29) values(21,29) values(22,29) values(23,29) values(24,29) values(25,29) values(26,29) values(27,29) values(28,29) values(29,29) values(30,29) values(31,29) values(32,29) values(33,29) values(34,29) values(35,29) values(9,28) values(10,28) values(11,28) values(12,28) values(13,28) values(14,28) values(15,28) values(16,28) values(17,28) values(18,28) values(19,28) values(20,28) values(21,28) values(22,28) values(23,28) values(24,28) values(25,28) values(26,28) values(27,28) values(28,28) values(29,28) values(30,28) values(31,28) values(32,28) values(33,28) values(34,28) values(35,28) values(9,27) values(10,27) values(11,27) values(12,27) values(13,27) values(14,27) values(15,27) values(16,27) values(17,27) values(18,27) values(19,27) values(20,27) values(21,27) values(22,27) values(23,27) values(24,27) values(25,27) values(26,27) values(27,27) values(28,27) values(29,27) values(30,27) values(31,27) values(32,27) values(33,27) values(34,27) values(35,27) values(9,26) values(10,26) values(11,26) values(12,26) values(13,26) values(14,26) values(15,26) values(16,26) values(17,26) values(18,26) values(19,26) values(20,26) values(21,26) values(22,26) values(23,26) values(24,26) values(25,26) values(26,26) values(27,26) values(28,26) values(29,26) values(30,26) values(31,26) values(32,26) values(33,26) values(34,26) values(35,26) values(36,26) values(8,25) values(9,25) values(10,25) values(11,25) values(12,25) values(13,25) values(14,25) values(15,25) values(16,25) values(17,25) values(18,25) values(19,25) values(20,25) values(21,25) values(22,25) values(23,25) values(24,25) values(25,25) values(26,25) values(27,25) values(28,25) values(29,25) values(30,25) values(31,25) values(32,25) values(33,25) values(34,25) values(35,25) values(36,25) values(8,24) values(9,24) values(10,24) values(11,24) values(12,24) values(13,24) values(14,24) values(15,24) values(16,24) values(17,24) values(18,24) values(19,24) values(20,24) values(21,24) values(22,24) values(23,24) values(24,24) values(25,24) values(26,24) values(27,24) values(28,24) values(29,24) values(30,24) values(31,24) values(32,24) values(33,24) values(34,24) values(35,24) values(36,24) values(7,23) values(8,23) values(9,23) values(10,23) values(11,23) values(12,23) values(13,23) values(14,23) values(15,23) values(16,23) values(17,23) values(18,23) values(19,23) values(20,23) values(21,23) values(22,23) values(23,23) values(24,23) values(25,23) values(26,23) values(27,23) values(28,23) values(29,23) values(30,23) values(31,23) values(32,23) values(33,23) values(34,23) values(35,23) values(36,23) values(37,23) values(7,22) values(8,22) values(9,22) values(10,22) values(11,22) values(12,22) values(13,22) values(14,22) values(15,22) values(16,22) values(17,22) values(18,22) values(19,22) values(20,22) values(21,22) values(22,22) values(23,22) values(24,22) values(25,22) values(26,22) values(27,22) values(28,22) values(29,22) values(30,22) values(31,22) values(32,22) values(33,22) values(34,22) values(35,22) values(36,22) values(37,22) values(7,21) values(8,21) values(9,21) values(10,21) values(11,21) values(12,21) values(13,21) values(14,21) values(15,21) values(16,21) values(17,21) values(18,21) values(19,21) values(20,21) values(21,21) values(22,21) values(23,21) values(24,21) values(25,21) values(26,21) values(27,21) values(28,21) values(29,21) values(30,21) values(31,21) values(32,21) values(33,21) values(34,21) values(35,21) values(36,21) values(37,21) values(38,21) values(6,20) values(7,20) values(8,20) values(9,20) values(10,20) values(11,20) values(12,20) values(13,20) values(14,20) values(15,20) values(16,20) values(17,20) values(18,20) values(19,20) values(20,20) values(21,20) values(22,20) values(23,20) values(24,20) values(25,20) values(26,20) values(27,20) values(28,20) values(29,20) values(30,20) values(31,20) values(32,20) values(33,20) values(34,20) values(35,20) values(36,20) values(37,20) values(38,20) values(6,19) values(7,19) values(8,19) values(9,19) values(10,19) values(11,19) values(12,19) values(13,19) values(14,19) values(15,19) values(16,19) values(17,19) values(18,19) values(19,19) values(20,19) values(21,19) values(22,19) values(23,19) values(24,19) values(25,19) values(26,19) values(27,19) values(28,19) values(29,19) values(30,19) values(31,19) values(32,19) values(33,19) values(34,19) values(35,19) values(36,19) values(37,19) values(38,19) values(6,18) values(7,18) values(8,18) values(9,18) values(10,18) values(11,18) values(12,18) values(13,18) values(14,18) values(15,18) values(16,18) values(17,18) values(18,18) values(19,18) values(20,18) values(21,18) values(22,18) values(23,18) values(24,18) values(25,18) values(26,18) values(27,18) values(28,18) values(29,18) values(30,18) values(31,18) values(32,18) values(33,18) values(34,18) values(35,18) values(36,18) values(37,18) values(38,18) values(39,18) values(5,17) values(6,17) values(7,17) values(8,17) values(9,17) values(10,17) values(11,17) values(12,17) values(13,17) values(14,17) values(15,17) values(16,17) values(17,17) values(18,17) values(19,17) values(20,17) values(21,17) values(22,17) values(23,17) values(24,17) values(25,17) values(26,17) values(27,17) values(28,17) values(29,17) values(30,17) values(31,17) values(32,17) values(33,17) values(34,17) values(35,17) values(36,17) values(37,17) values(38,17) values(39,17) values(5,16) values(6,16) values(7,16) values(8,16) values(9,16) values(10,16) values(11,16) values(12,16) values(13,16) values(14,16) values(15,16) values(16,16) values(17,16) values(18,16) values(19,16) values(20,16) values(21,16) values(22,16) values(23,16) values(24,16) values(25,16) values(26,16) values(27,16) values(28,16) values(29,16) values(30,16) values(31,16) values(32,16) values(33,16) values(34,16) values(35,16) values(36,16) values(37,16) values(38,16) values(39,16) values(40,16) values(4,15) values(5,15) values(6,15) values(7,15) values(8,15) values(9,15) values(10,15) values(11,15) values(12,15) values(13,15) values(14,15) values(15,15) values(16,15) values(17,15) values(18,15) values(19,15) values(20,15) values(21,15) values(22,15) values(23,15) values(24,15) values(25,15) values(26,15) values(27,15) values(28,15) values(29,15) values(30,15) values(31,15) values(32,15) values(33,15) values(34,15) values(35,15) values(36,15) values(37,15) values(38,15) values(39,15) values(40,15) values(4,14) values(5,14) values(6,14) values(7,14) values(8,14) values(9,14) values(10,14) values(11,14) values(15,14) values(16,14) values(17,14) values(18,14) values(19,14) values(20,14) values(21,14) values(22,14) values(23,14) values(24,14) values(25,14) values(26,14) values(27,14) values(28,14) values(29,14) values(30,14) values(31,14) values(32,14) values(35,14) values(36,14) values(37,14) values(38,14) values(39,14) values(40,14) values(4,13) values(5,13) values(6,13) values(7,13) values(8,13) values(9,13) values(10,13) values(15,13) values(16,13) values(17,13) values(18,13) values(19,13) values(20,13) values(21,13) values(22,13) values(23,13) values(24,13) values(25,13) values(26,13) values(27,13) values(28,13) values(29,13) values(30,13) values(31,13) values(36,13) values(37,13) values(38,13) values(39,13) values(40,13) values(41,13) values(3,12) values(4,12) values(5,12) values(6,12) values(7,12) values(8,12) values(9,12) values(16,12) values(17,12) values(18,12) values(19,12) values(20,12) values(21,12) values(22,12) values(23,12) values(24,12) values(25,12) values(26,12) values(27,12) values(28,12) values(29,12) values(30,12) values(37,12) values(38,12) values(39,12) values(40,12) values(41,12) values(3,11) values(4,11) values(5,11) values(6,11) values(7,11) values(8,11) values(17,11) values(18,11) values(19,11) values(20,11) values(21,11) values(22,11) values(23,11) values(24,11) values(25,11) values(26,11) values(27,11) values(28,11) values(29,11) values(38,11) values(39,11) values(40,11) values(41,11) values(42,11) values(2,10) values(3,10) values(4,10) values(5,10) values(6,10) values(7,10) values(18,10) values(19,10) values(20,10) values(21,10) values(22,10) values(23,10) values(24,10) values(25,10) values(26,10) values(27,10) values(28,10) values(39,10) values(40,10) values(41,10) values(42,10) values(2,9) values(3,9) values(4,9) values(5,9) values(6,9) values(18,9) values(19,9) values(20,9) values(21,9) values(22,9) values(23,9) values(24,9) values(25,9) values(26,9) values(27,9) values(28,9) values(40,9) values(41,9) values(42,9) values(43,9) values(1,8) values(2,8) values(3,8) values(4,8) values(19,8) values(20,8) values(21,8) values(22,8) values(23,8) values(24,8) values(25,8) values(26,8) values(27,8) values(41,8) values(42,8) values(43,8) values(1,7) values(2,7) values(3,7) values(19,7) values(20,7) values(21,7) values(22,7) values(23,7) values(24,7) values(25,7) values(26,7) values(42,7) values(43,7) values(1,6) values(2,6) values(20,6) values(21,6) values(22,6) values(23,6) values(24,6) values(25,6) values(43,6) values(44,6) values(0,5) values(1,5) values(21,5) values(22,5) values(23,5) values(24,5) values(44,5) values(0,4) values(21,4) values(22,4) values(23,4) values(24,4) values(45,4) values(22,3) values(23,3) values(22,2)
;quit;


data WORK.ANNO;
   length function $ 8 color style $ 32;
   
   xsys='1'; ysys='1'; when='a';

   /* Fun with flags? */
   set WORK.BZH;

   function = 'move'; output;
   function = 'pie'; rotate=360; size=.2; color = 'cx051440' ; style='SOLID'; output;   
run;

goptions nodisplay;
proc datasets lib=work mt=catalog nolist;
   delete GSEG;
run;quit;

proc gslide name="GWENNHAD" anno=WORK.ANNO;
run;quit;

/* Background */
data WORK.ANNO;
   length function $ 4 color style $ 5;
   
   xsys='1'; ysys='1';
   color = 'black' ; style='SOLID';

   function = 'move';  x =  100 * 4 / 9;  y =  100; output;
   function = 'bar' ;  x =  100; y = 100 * 8 / 9 ;  output;
   
   function = 'move';  x =  100 * 4 / 9;  y =  100 * 7 / 9; output;
   function = 'bar' ;  x =  100; y = 100 * 6 / 9 ; output;
   
   function = 'move';  x =  0;   y =  100 * 5 / 9; output;
   function = 'bar' ;  x =  100; y =  100 * 4 / 9 ; output;

   function = 'move';  x =  0;   y =  100 * 3 / 9; output;
   function = 'bar' ;  x =  100; y =  100 * 2 / 9 ; output;

   function = 'move';  x =  0;   y =  100 * 1 / 9; output;
   function = 'bar' ;  x =  100; y =  0 ; output;  
run;

proc gslide name="BZH" anno=WORK.ANNO;
run;quit;

/* https://en.wikipedia.org/wiki/Flag_of_Brittany */
goptions display;
goptions xpixels=600 ypixels=300;
proc greplay tc=tempcat nofs igout=WORK.GSEG;
   tdef tt 

   0/llx =    0    lly =    0
     ulx =    0    uly =  100
     urx =  100    ury =  100
     lrx =  100    lry =    0
   
   1/llx =    0    lly =  85
     ulx =    0    uly =  100
     urx =   15    ury =  100
     lrx =   15    lry =  85
           
   2/llx =   10    lly =  85
     ulx =   10    uly =  100
     urx =   25    ury =  100
     lrx =   25    lry =  85
           
   3/llx =   20    lly =  85
     ulx =   20    uly =  100
     urx =   35    ury =  100
     lrx =   35    lry =  85
               
   4/llx =   30    lly =  85
     ulx =   30    uly =  100
     urx =   45    ury =  100
     lrx =   45    lry =  85
               
   5/llx =    5    lly =  70
     ulx =    5    uly =  85
     urx =   20    ury =  85
     lrx =   20    lry =  70
     
   6/llx =   15    lly =  70
     ulx =   15    uly =  85
     urx =   30    ury =  85
     lrx =   30    lry =  70        

   7/llx =   25    lly =  70
     ulx =   25    uly =  85
     urx =   40    ury =  85
     lrx =   40    lry =  70 
 
   8/llx =    0    lly =  56
     ulx =    0    uly =  71
     urx =   15    ury =  71
     lrx =   15    lry =  56
           
   9/llx =   10    lly =  56
     ulx =   10    uly =  71
     urx =   25    ury =  71
     lrx =   25    lry =  56
           
  10/llx =   20    lly =  56
     ulx =   20    uly =  71
     urx =   35    ury =  71
     lrx =   35    lry =  56
               
  11/llx =   30    lly =  56
     ulx =   30    uly =  71
     urx =   45    ury =  71
     lrx =   45    lry =  56

   ;

   template = tt;
   treplay                          
      0:BZH
      1:GWENNHAD 2:GWENNHAD 3:GWENNHAD 4:GWENNHAD
             5:GWENNHAD 6:GWENNHAD 7:GWENNHAD
      8:GWENNHAD 9:GWENNHAD 10:GWENNHAD 11:GWENNHAD
      name="dash";
run;
Senior User
Posts: 1

Re: Fun With SAS ODS Graphics: Betsy Ross Edition

[ Edited ]

Australia, complete with programmatically generated stars.  I only have 9.4M2 so I had to create a body polygon for the background, lacking as I do the wallcolor option.

 

https://en.wikipedia.org/wiki/Flag_of_Australia and https://en.wikipedia.org/wiki/Union_Jack

 

flag_of_australia.jpg

 

proc datasets lib=work nolist nodetails;
	delete star;
run;

%let w = 10;
%let l = %eval(&w * 2);
%let inner = 4/9;
%let rad = 0.01745329252;

%macro drawStar(s,d,x,y,p);
	%let points = %sysevalf(&p*2);
	%let radius = %sysevalf((&d*&w)/2);
	%do i = 1 %to &points;
		%if %sysfunc(mod(&i,2)) = 0 %then %let div = &inner;
		%else %let div = 1;
		%let hyp = %sysevalf(&radius * &div);
		%let movex = %sysfunc(cos((90 - (&i * (360/&points)))*&rad));
		%let movey = %sysfunc(sin((90 - (&i * (360/&points)))*&rad));
		%let sx = %sysevalf(&x + (&hyp*&movex));
		%let sy = %sysevalf(&y + (&hyp*&movey));
		proc sql;
			insert into star(starpoly,sx,sy,r)
				values(&s,&sx,&sy,%sysevalf(360/&points));
		quit;
	%end;
%mend drawStar;

data body;
	mpolygon+1;
	mx = 0; 	my = 0;		output;	* top left;
	mx = &l;	my = 0;		output; * top right;
	mx = &l;	my = &l;	output; * bottom right;
	mx = 0;		my = &l;	output; * bottom left;
run;

data star;
	length starpoly sx sy r 8;
	stop;
	*commonwealth = star1, 3/10 width, centre middle of lower hoist, 7 points;
	%drawStar(1,3/10,&w/2,&w/4,7);
	* alpha crucis = star2, 1/7 width, centre directly below centre fly 1/6 up from bottom edge, 7 points;
	%drawStar(2,1/7,&w*1.5,&w/6,7);
	* beta crucis = star3, 1/7 width, centre 1/4 left and 1/16 up from centre fly, 7 points;
	%drawStar(3,1/7,&w*1.25,(&w/2)+(&w/16),7);
	* gamma crucis = star4, 1/7 width, centre directly above centre fly 1/6 down from top edge, 7 points;
	%drawStar(4,1/7,&w*1.5,&w-(&w/6),7);
	* delta crucis = star5, 1/7 width, centre 2/9 right and 31/240 up from centre fly, 7 points;
	%drawStar(5,1/7,(&w*1.5)+((&w*2)/9),(&w/2)+((&w*31)/240),7);
	* epsilon crucis = star6, 1/10 width, centre 1/10 right and 1/24 down from centre fly, 5 points;
	%drawStar(6,1/10,(&w*1.5)+(&w/10),(&w/2)-(&w/24),5);
run;

data standrew(drop=d f);
	d = &w/10;
	e = d/2;
	*St Andrew top left to bottom right;
	standrew + 1;
	f = e / sin((30*&rad));
	ux = f;					uy = &w; 					output;
	f = e / cos((30*&rad));
	ux = &w;				uy = &w - ((&w/2)-f);		output;
	ux = &w;				uy = &w/2;					output;		* bottom right corner;
	f = e / sin((30*&rad));
	ux = &w-f;				uy = &w/2;					output;
	f = e / cos((30*&rad));
	ux = 0;					uy = &w-f;					output;
	ux = 0;					uy = &w;					output;		* top left corner;
	*St Andrew bottom left to top right;
	standrew + 1;
	f = e / sin((60*&rad));
	ux = 0;					uy = &w - ((&w/2)-f); 		output;
	f = e / cos((60*&rad));
	ux = &w - f;			uy = &w; 					output;
	ux = &w;				uy = &w;					output;
	f = e / sin((60*&rad));
	ux = &w;				uy = &w-f;					output;
	f = e / cos((60*&rad));
	ux = f;					uy = &w/2;					output;
	ux = 0;					uy = &w/2;					output;
run;

data stpatrick(drop=d e f);
	d = &w/5;
	e = d/6;
	*St Patrick top left;
	stpatrick + 1;
	f = e / cos((30*&rad));
	ux = 0;					uy = &w; 					output;
	ux = &w/2;				uy = &w - (&w/4);			output;
	ux = &w/2;				uy = &w - ((&w/4)+e);		output;
	ux = 0;					uy = &w-f;					output;
	*St Patrick top right;
	stpatrick + 1;
	f = e / cos((60*&rad));
	ux = &w-f;				uy = &w; 					output;
	ux = &w;				uy = &w; 					output;
	ux = &w/2;				uy = &w-(&w/4);				output;
	ux = &w/2;				uy = &w - ((&w/4)-e);		output;
	*St Patrick bottom right;
	stpatrick + 1;
	f = e / sin((60*&rad));
	ux = &w;				uy = &w - ((&w/2)-f);		output;
	ux = &w;				uy = &w - (&w/2); 			output;
	ux = &w/2;				uy = &w-(&w/4);				output;
	ux = &w/2;				uy = &w - ((&w/4)-e);		output;
	*St Patrick bottom left;
	stpatrick + 1;
	f = e / cos((60*&rad));
	ux = 0;					uy = &w - (&w/2);			output;
	ux = &w/2;				uy = &w - (&w/4); 			output;
	ux = &w/2;				uy = &w - ((&w/4)+e);		output;
	ux = f;					uy = &w - (&w/2);			output;
run;

data stgeorgea(drop=d e e2);
	d = &w/10;
	e = d + ((d/3)*2);
	e2 = e/2;
	*St George white horizontal;
	stgpoly1 + 1;
	ux = 0;					uy = &w - (&w/4 - e2); 		output;
	ux = &w;				uy = &w - (&w/4 - e2); 		output;
	ux = &w;				uy = &w - (&w/4 + e2);		output;
	ux = 0;					uy = &w - (&w/4 + e2);		output;
	*St George white vertical;
	stgpoly1 + 1;
	ux = &w/2 - e2;			uy = &w; 					output;
	ux = &w/2 + e2;			uy = &w; 					output;
	ux = &w/2 + e2;			uy = &w/2;					output;
	ux = &w/2 - e2;			uy = &w/2;					output;
run;

data stgeorgeb(drop=d d2);
	d = &w/10;
	d2 = d/2;
	*St George red horizontal;
	stgpoly2 + 1;
	ux = 0;					uy = &w - (&w/4 - d2); 		output;
	ux = &w;				uy = &w - (&w/4 - d2); 		output;
	ux = &w;				uy = &w - (&w/4 + d2);		output;
	ux = 0;					uy = &w - (&w/4 + d2);		output;
	*St George red vertical;
	stgpoly2 + 1;
	ux = &w/2 - d2;			uy = &w; 					output;
	ux = &w/2 + d2;			uy = &w; 					output;
	ux = &w/2 + d2;			uy = &w/2;					output;
	ux = &w/2 - d2;			uy = &w/2;					output;
run;

data unionjack;
	set standrew stpatrick stgeorgea stgeorgeb;
run;

data flag;                                            
	set body unionjack star;
	ods graphics on / reset=index border=off imagefmt=gif
	antialias height=&w.in width=&l.in;
run;


proc sgplot data=flag noautolegend pad=0;
	xaxis display=none offsetmin=0 offsetmax=0 values=(0 &l);
	yaxis display=none offsetmin=0 offsetmax=0 values=(0 &w);

	polygon x=mx y=my id=mpolygon  / fill fillattrs=(color=CX00008B) nooutline;
	polygon x=ux y=uy id=standrew  / fill fillattrs=(color=CXFFFFFF) nooutline;
	polygon x=ux y=uy id=stpatrick / fill fillattrs=(color=CXFF0000) nooutline;
	polygon x=ux y=uy id=stgpoly1  / fill fillattrs=(color=CXFFFFFF) nooutline;
	polygon x=ux y=uy id=stgpoly2  / fill fillattrs=(color=CXFF0000) nooutline;
	polygon x=sx y=sy id=starpoly  / fill fillattrs=(color=CXFFFFFF) nooutline rotate=r;
run;

 

 

 

 

 

 

SAS Super FREQ
Posts: 3,483

Re: Fun With SAS ODS Graphics: Betsy Ross Edition

There are some pretty impressive flags here.  If you want a challenge, there is a web site that features Flags That Are Hard to Draw.  I don't know why Canada and US are on the list; they are easy compared to some of the others!  I really like Bhutan, Sri Lanka, and Wales, which feature mythological beasts.

SAS Super FREQ
Posts: 685

Re: Fun With SAS ODS Graphics: Betsy Ross Edition

Hi

 

Not long ago we had our national day in Switzerland on 1st of August. So here is my contribution of the Swiss flag. All is drawn using the POLYGON statement to get best control. Enjoy.

 

/*
 * sample to draw the swiss flag
 * dimension information taken from
 *
 * Bundesgesetz über den Schutz des Schweizerwappens und anderer öffentlicher Zeichen 
 * (Wappenschutzgesetz, WSchG) 
 *
 * https://www.admin.ch/opc/de/official-compilation/2015/3679.pdf
 *
 */
data ch_flag;
  length id $ 16;

  /* polgon for red square */
  id = "redBG";
  sideLen = 1;
  x = 0;
  y = 0;
  output;
  x = 0;
  y = sideLen;
  output;
  x = sideLen;
  y = sideLen;
  output;
  x = sideLen;
  y = 0;
  output;

  /* polygon for whitecross */
  id = "whiteCross";

  /*
   * determine the sidelength of inner square
   * numbers represent the length of the 5 parts
   *
   */
  b = (sideLen / (6+7+6+7+6)) * 6;

  /* center point where all the other measures are based */
  sideLen_2 = sideLen / 2;

  /* offset from center point for inner square */
  b_2 = b / 2;

  /* length of the arms */
  b_plus_b16 = b + (b *(1/6));

  /* just as a check for the ratio */
  arm = b + (2 * b_plus_b16);

  /*
   * layout of the white cross
   *     6--7   
   *     !  !
   *  4--5  8--9
   *  !        !     
   *  3--2  11-10
   *     !  !
   *     1--12
   */

  /* point 1 */
  x = sideLen_2 - b_2;
  y = sideLen_2 - b_2 - b_plus_b16;
  output;

  /* point 2 */
  x = sideLen_2 - b_2;
  y = sideLen_2 - b_2;
  output;

  /* point 3 */
  x = sideLen_2 - b_2 - b_plus_b16;
  y = sideLen_2 - b_2;
  output;

  /* point 4 */
  x = sideLen_2 - b_2 - b_plus_b16;
  y = sideLen_2 + b_2;
  output;

  /* point 5 */
  x = sideLen_2 - b_2;
  y = sideLen_2 + b_2;
  output;

  /* point 6 */
  x = sideLen_2 - b_2;
  y = sideLen_2 + b_2 + b_plus_b16;
  output;

  /* point 7 */
  x = sideLen_2 + b_2;
  y = sideLen_2 + b_2 + b_plus_b16;
  output;

  /* point 8 */
  x = sideLen_2 + b_2;
  y = sideLen_2 + b_2;
  output;

  /* point 9 */
  x = sideLen_2 + b_2 + b_plus_b16;
  y = sideLen_2 + b_2;
  output;

  /* point 10 */
  x = sideLen_2 + b_2 + b_plus_b16;
  y = sideLen_2 - b_2;
  output;

  /* point 11 */
  x = sideLen_2 + b_2;
  y = sideLen_2 - b_2;
  output;

  /* point 12 */
  x = sideLen_2 + b_2;
  y = sideLen_2 - b_2 - b_plus_b16;
  output;
run;

ods graphics / reset=all;

ods graphics / width=800 height=800 noborder ;

proc sgplot data=ch_flag
  aspect=1 pad=0 noborder noautolegend 
;
  styleattrs
    dataColors=( cxff0000 cxffffff)
  ;
  polygon x=x y=y id=id / group=id fill;
  xaxis display=none offsetmin=0 offsetmax=0;
  yaxis display=none offsetmin=0 offsetmax=0;
run;

Here is the result:ch_flag.png

 

 

Community Manager
Posts: 2,768

Re: Fun With SAS ODS Graphics: Betsy Ross Edition

Nice one @Bruno_SAS! I've never been to Switzerland so I don't know how it compares to other countries, but clearly the flag is a big plus.

 

badum-tsss!

Ask a Question
Discussion stats
  • 19 replies
  • 3987 views
  • 80 likes
  • 10 in conversation