How can I specify colors for the 3D surface plot based on response values ? I want same colour to appear if the values are in the same range, for multiple graphs.
my code is :
ods _all_ close;
ods html file="/home/a.g/created for HTML output/new.htm";
/* Set the DEVICE on the GOPTIONS statement */
/* to ACTIVEX. */
goptions reset=all device=activex
border xpixels=600 ypixels=400
cback=white;
Data surface_data;
input longitude latitude yield;
datalines;
10 1 5
10 2 5
10 3 5
10 4 5
10 5 5
10 6 0
10 7 0
10 8 0
10 9 0
9 1 5
9 2 5
9 3 5
9 4 5
9 5 5
9 6 0
9 7 0
9 8 0
9 9 0
8 1 5
8 2 5
8 3 5
8 4 5
8 5 5
8 6 0
8 7 0
8 8 0
8 9 0
7 1 5
7 2 5
7 3 5
7 4 5
7 5 5
7 6 0
7 7 0
7 8 0
7 9 0
6 1 5
6 2 5
6 3 5
6 4 5
6 5 5
6 6 0
6 7 0
6 8 0
6 9 0
5 1 10
5 2 10
5 3 10
5 4 10
5 5 10
5 6 20
5 7 20
5 8 20
5 9 20
4 1 10
4 2 10
4 3 10
4 4 10
4 5 10
4 6 20
4 7 20
4 8 20
4 9 20
3 1 10
3 2 10
3 3 10
3 4 10
3 5 10
3 6 20
3 7 20
3 8 20
3 9 20
2 1 10
2 2 10
2 3 10
2 4 10
2 5 10
2 6 20
2 7 20
2 8 20
2 9 20
1 1 10
1 2 10
1 3 10
1 4 10
1 5 10
1 6 20
1 7 20
1 8 20
1 9 20
;
title1 "North America Elevation Contour Map";
title2 "Use 'Right-Mouse -> Graph Toolbar' to enable rotate mode";
goptions colors = ( blueviolet blue aquamarine green yellow orangered red );
proc g3d data=surface_data;
plot latitude*longitude=yield /
style=4 contour=1 grid
des='' name="&name";
run;
quit;
ODS HTML CLOSE;
ODS LISTING;
One way is to adapt the number of colours to the range of your data.
data SURFACE_DATA;
set SURFACE_DATA;
YIELD2=YIELD*2;
run;
axis order=(0 to 50 by 5);
goptions colors = ( blueviolet blue aquamarine green);
proc g3d data=SURFACE_DATA ;
plot LATITUDE*LONGITUDE=YIELD / style=4 contour=1 grid zaxis=axis1;
run;
goptions colors = ( blueviolet blue aquamarine green yellow orangered red );
proc g3d data=SURFACE_DATA;
plot LATITUDE*LONGITUDE=YIELD2 / style=4 contour=1 grid zaxis=axis1;
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.