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.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.