The data used for the plot is entirely generated within the script via a DATA step with 'datalines'. The resulting table is 'my_data'.
1 Code Block
Macro
Explanation : Defines a macro variable 'name' with the value 'bub1'. This variable will be used later to name the output files (HTML, PNG).
Copied!
%let name=bub1;
1
%let name=bub1;
2 Code Block
Global Statement
Explanation : Assignment of a fileref 'odsout' to the current working directory. This tells SAS where to save ODS-generated output files.
Copied!
filename odsout '.';
1
filename odsout '.';
3 Code Block
DATA STEP Data
Explanation : Creates the SAS data table 'my_data'. The 'color' variable is defined with a length of 8 characters. The 'series', 'x', 'y', and 'value' variables are read from the data lines ('datalines') provided directly in the script.
Copied!
data my_data;
length color $ 8;
input series $ 1-1 x y value;
datalines;
A 1.0 1.0 .65
A 2.0 0.9 0.3
B 1.4 2.3 .65
B 2.2 1.4 0.3
;
run;
1
DATA my_data;
2
LENGTH color $ 8;
3
INPUT series $ 1-1 x y value;
4
DATALINES;
5
A 1.01.0 .65
6
A 2.00.90.3
7
B 1.42.3 .65
8
B 2.21.40.3
9
;
10
RUN;
4 Code Block
ODS Statements
Explanation : Closes the default ODS LISTING destination. Then opens the ODS HTML destination, specifying the output path via the 'odsout' fileref, the HTML file name ('bub1.htm' thanks to the macro variable '&name'), a title for the HTML document, and an 'htmlblue' style. The 'ods graphics' options are configured to generate a PNG image ('bub1.png') of 800x600 pixels without a border and with an image map.
Explanation : Defines the first title of the plot. It is styled with 'gray33' color, a line spacing of 0.0, and a font height of 23 points, displaying the text 'Bubble Plot'.
Copied!
title1 color=gray33 ls=0.0 h=23pt "Bubble Plot";
1
title1 color=gray33 ls=0.0 h=23pt "Bubble Plot";
6 Code Block
PROC SGPLOT
Explanation : Executes the SGPLOT procedure to create the bubble plot. It uses the 'my_data' table. Bubble colors are defined by 'styleattrs datacolors'. The 'bubble' statement specifies 'x' and 'y' for positions, 'value' for size, and 'series' for grouping, with additional options for maximum radius and line attributes. The X and Y axes are fully customized with value ranges, stylized labels, display values, and minor grids.
Copied!
proc sgplot data=my_data aspect=1 noautolegend;
styleattrs datacolors=(cx9999ff cx993366);
bubble x=x y=y size=value / group=series proportional
bradiusmax=70px lineattrs=(color=gray33);
yaxis
values=(0 to 3 by 1) label='Y Axis'
labelattrs=(size=16pt weight=bold color=gray33)
valueattrs=(size=16pt weight=bold color=gray33)
offsetmin=0 offsetmax=0 grid minor minorcount=1;
xaxis
values=(0 to 3 by 1) label='X Axis'
labelattrs=(size=16pt weight=bold color=gray33)
valueattrs=(size=16pt weight=bold color=gray33)
offsetmin=0 offsetmax=0 grid minor minorcount=1;
run;
Explanation : Terminates the execution of the SGPLOT procedure with 'quit;'. Then closes the previously opened ODS HTML destination and reactivates the ODS LISTING destination, restoring SAS's default output behavior.
Copied!
quit;
ODS HTML CLOSE;
ODS LISTING;
1
QUIT;
2
ODS HTML CLOSE;
3
ODS LISTING;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.