Hi I'm working with SGPanel and heatmapparam. I get some unexcpected behaviour and challenges in controlling axis. Below is what I get. Data and code at the bottom.
Data forSGpanel_problem;
call streaminit(1234);
do date='01feb2010'd to '31dec2017'd by 280;
Panel='pan1';
x=1;
number=rand('POISSON',3);
output;
Panel='pan1';
x=2;
number=rand('POISSON',3.5);
output;
panel='pan2';
x=1;
number=rand('POISSON',4);
output;
panel='pan2';
x=2;
number=rand('POISSON',4.5);
output;
end;
format date monyy5.;
run;
data forsgpanel_problem;
set forsgpanel_problem;
date_txt=put(date,monyy5.);
run;
ods graphics on / width=900 px height=600 px imagemap;
proc sgpanel data=forSGpanel_problem;
where date ge '01jan2015'd;
panelby panel;
heatmapparm x=x y=date colorresponse=number/outline;
text x=x y=date text=date_txt;
* rowaxis interval=month;
run;
Although the gist of the data being reasonable similar I get a really different graph. I do not get the breaks in the y axis and the boxes are placed in a seemingly erronous fashion.data test;
infile datalines dsd truncover;
input ch_ind:32. AIgeo_adp_cl:32. PCT_ROW:32. mnth_txt:$14. mnth:MONYY5. mnth_plt:$12.;
datalines4;
-1,1,8.9009525761,JUL15,JUL15,L08-09-JUL15
0,1,5.1881971043,JUL15,JUL15,L08-09-JUL15
1,1,0.4662548083,JUL15,JUL15,L08-09-JUL15
-1,2,63.341186111,JUL15,JUL15,L08-09-JUL15
0,2,8.4343303867,JUL15,JUL15,L08-09-JUL15
1,2,0,JUL15,JUL15,L08-09-JUL15
-1,3,8.1122605756,JUL15,JUL15,L08-09-JUL15
0,3,3.5235709713,JUL15,JUL15,L08-09-JUL15
1,3,0.3030656254,JUL15,JUL15,L08-09-JUL15
-1,4,0,JUL15,JUL15,L08-09-JUL15
0,4,0,JUL15,JUL15,L08-09-JUL15
1,4,98.379764541,JUL15,JUL15,L08-09-JUL15
-1,5,5.5925432756,JUL15,JUL15,L08-09-JUL15
0,5,5.1320356288,JUL15,JUL15,L08-09-JUL15
1,5,0.3613474764,JUL15,JUL15,L08-09-JUL15
-1,6,11.973778552,JUL15,JUL15,L08-09-JUL15
0,6,5.6161475474,JUL15,JUL15,L08-09-JUL15
1,6,0.4429420678,JUL15,JUL15,L08-09-JUL15
-1,7,2.0383078972,JUL15,JUL15,L08-09-JUL15
0,7,8.5657482393,JUL15,JUL15,L08-09-JUL15
1,7,0.0466254808,JUL15,JUL15,L08-09-JUL15
-1,8,0.040971013,JUL15,JUL15,L08-09-JUL15
0,8,63.539970122,JUL15,JUL15,L08-09-JUL15
1,8,0,JUL15,JUL15,L08-09-JUL15
-1,1,4.186728072,APR16,APR16,L09-10-APR16
0,1,5.252798498,APR16,APR16,L09-10-APR16
1,1,3.519727505,APR16,APR16,L09-10-APR16
-1,2,5.23341009,APR16,APR16,L09-10-APR16
0,2,13.141080639,APR16,APR16,L09-10-APR16
1,2,12.035197275,APR16,APR16,L09-10-APR16
-1,3,41.720745238,APR16,APR16,L09-10-APR16
0,3,1.9783791422,APR16,APR16,L09-10-APR16
1,3,0.0567697985,APR16,APR16,L09-10-APR16
-1,4,5.1287418882,APR16,APR16,L09-10-APR16
0,4,8.0336324454,APR16,APR16,L09-10-APR16
1,4,6.6988362191,APR16,APR16,L09-10-APR16
-1,5,9.8806782499,APR16,APR16,L09-10-APR16
0,5,4.6441440987,APR16,APR16,L09-10-APR16
1,5,2.0720976441,APR16,APR16,L09-10-APR16
-1,6,3.5377852208,APR16,APR16,L09-10-APR16
0,6,5.9411936894,APR16,APR16,L09-10-APR16
1,6,4.3145046835,APR16,APR16,L09-10-APR16
-1,7,0.0628009211,APR16,APR16,L09-10-APR16
0,7,5.4365051327,APR16,APR16,L09-10-APR16
1,7,69.25915413,APR16,APR16,L09-10-APR16
-1,8,30.24911032,APR16,APR16,L09-10-APR16
0,8,55.572266354,APR16,APR16,L09-10-APR16
1,8,2.0437127448,APR16,APR16,L09-10-APR16
-1,1,5.5873925501,OCT16,OCT16,L10-11-OCT16
0,1,5.2175836996,OCT16,OCT16,L10-11-OCT16
1,1,3.2598920863,OCT16,OCT16,L10-11-OCT16
-1,2,4.7564469914,OCT16,OCT16,L10-11-OCT16
0,2,13.536753392,OCT16,OCT16,L10-11-OCT16
1,2,1.506294964,OCT16,OCT16,L10-11-OCT16
-1,3,0,OCT16,OCT16,L10-11-OCT16
0,3,0,OCT16,OCT16,L10-11-OCT16
1,3,88.916366906,OCT16,OCT16,L10-11-OCT16
-1,4,22.836676218,OCT16,OCT16,L10-11-OCT16
0,4,7.6031096316,OCT16,OCT16,L10-11-OCT16
1,4,1.8660071942,OCT16,OCT16,L10-11-OCT16
-1,5,4.3266475645,OCT16,OCT16,L10-11-OCT16
0,5,4.9993462935,OCT16,OCT16,L10-11-OCT16
1,5,0.5395683453,OCT16,OCT16,L10-11-OCT16
-1,6,5.5873925501,OCT16,OCT16,L10-11-OCT16
0,6,5.9145354158,OCT16,OCT16,L10-11-OCT16
1,6,2.9451438849,OCT16,OCT16,L10-11-OCT16
-1,7,53.782234957,OCT16,OCT16,L10-11-OCT16
0,7,5.9789003651,OCT16,OCT16,L10-11-OCT16
1,7,0.1573741007,OCT16,OCT16,L10-11-OCT16
-1,8,3.1232091691,OCT16,OCT16,L10-11-OCT16
0,8,56.749771203,OCT16,OCT16,L10-11-OCT16
1,8,0.809352518,OCT16,OCT16,L10-11-OCT16
-1,1,5.4568527919,MAY17,MAY17,L11-12-MAY17
0,1,5.0484297036,MAY17,MAY17,L11-12-MAY17
1,1,8.544869503,MAY17,MAY17,L11-12-MAY17
-1,2,5.7106598985,MAY17,MAY17,L11-12-MAY17
0,2,12.231679875,MAY17,MAY17,L11-12-MAY17
1,2,37.754737218,MAY17,MAY17,L11-12-MAY17
-1,3,22.165820643,MAY17,MAY17,L11-12-MAY17
0,3,3.3411603561,MAY17,MAY17,L11-12-MAY17
1,3,0.572041473,MAY17,MAY17,L11-12-MAY17
-1,4,37.182741117,MAY17,MAY17,L11-12-MAY17
0,4,7.3652284512,MAY17,MAY17,L11-12-MAY17
1,4,1.1798355381,MAY17,MAY17,L11-12-MAY17
-1,5,4.1878172589,MAY17,MAY17,L11-12-MAY17
0,5,4.531846199,MAY17,MAY17,L11-12-MAY17
1,5,14.837325706,MAY17,MAY17,L11-12-MAY17
-1,6,5.0338409475,MAY17,MAY17,L11-12-MAY17
0,6,5.6403483025,MAY17,MAY17,L11-12-MAY17
1,6,11.548087236,MAY17,MAY17,L11-12-MAY17
-1,7,8.6717428088,MAY17,MAY17,L11-12-MAY17
0,7,7.0100772919,MAY17,MAY17,L11-12-MAY17
1,7,16.410439757,MAY17,MAY17,L11-12-MAY17
-1,8,11.590524535,MAY17,MAY17,L11-12-MAY17
0,8,54.831229821,MAY17,MAY17,L11-12-MAY17
1,8,9.1526635681,MAY17,MAY17,L11-12-MAY17
-1,1,0,OCT17,OCT17,L12-13-OCT17
0,1,5.1485037859,OCT17,OCT17,L12-13-OCT17
1,1,0,OCT17,OCT17,L12-13-OCT17
-1,2,0,OCT17,OCT17,L12-13-OCT17
0,2,12.752977992,OCT17,OCT17,L12-13-OCT17
1,2,0,OCT17,OCT17,L12-13-OCT17
-1,3,0,OCT17,OCT17,L12-13-OCT17
0,3,3.6834899554,OCT17,OCT17,L12-13-OCT17
1,3,0,OCT17,OCT17,L12-13-OCT17
-1,4,0,OCT17,OCT17,L12-13-OCT17
0,4,7.8605955053,OCT17,OCT17,L12-13-OCT17
1,4,0,OCT17,OCT17,L12-13-OCT17
-1,5,0,OCT17,OCT17,L12-13-OCT17
0,5,4.7927280178,OCT17,OCT17,L12-13-OCT17
1,5,0,OCT17,OCT17,L12-13-OCT17
-1,6,0,OCT17,OCT17,L12-13-OCT17
0,6,5.780890557,OCT17,OCT17,L12-13-OCT17
1,6,0,OCT17,OCT17,L12-13-OCT17
-1,7,0,OCT17,OCT17,L12-13-OCT17
0,7,7.2915405463,OCT17,OCT17,L12-13-OCT17
1,7,0,OCT17,OCT17,L12-13-OCT17
-1,8,0,OCT17,OCT17,L12-13-OCT17
0,8,52.68927364,OCT17,OCT17,L12-13-OCT17
1,8,0,OCT17,OCT17,L12-13-OCT17
;;;;
run;
proc sgpanel data=test;
format mnth monyy5.;
panelby ch_ind / columns=3;
heatmapparm x=aigeo_adp_cl y=mnth colorresponse=pct_row/ outline ;
run;
First a comment on using:
data forsgpanel_problem;
set forsgpanel_problem;
date_txt=put(date,monyy5.);
run;
Habitual use of that structure will eventually cause a problem with hard to trace down data errors. In your example the variable could be added as
do date='01feb2010'd to '31dec2017'd by 280; date_txt=put(date,monyy5.);
Second it is not obvious which graph you want, which goes with which code, exactly what is wrong,and you say "The y or row axis behaves strangely." without describing what "strangely" may mean.
If the issue is that gaps appear in the values that is a function of your MNTH values, they are not evenly spaced: Jul15, Apr16, Oct16, May17 and Oct17 which becomes a bit more obvious if you add
rowaxis values=('01JUL15'd '01Apr16'd '01Oct16'd '01May17'd '01Oct17'd);
to the second code.
Hi ballardw, sry for not making myself clear. The challenge is that to similar datasets give different results, none of them being right.
Controllable solution is to use a character variable. As you can see there is one on the second code snippet. using this give a nice result. However you have to either add a variable that sorts right, For dates using yyyymm or a prefix and monyy5. format. In the current case I'm working this is acceptable. But future cases it might not be. Thanks for your interest.
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.