Rick, Here is my version code for both numeric and character variables.

%let dsn=sashelp.heart;

proc transpose data=&dsn(obs=0) out=temp;
var _all_;
run;

proc sql noprint;
select catx(' ','missing(',_name_,') as ',_name_)
into :names separated by ','
from temp;
select _name_ into :vars separated by ' '
from temp;
create table want as
select &names. from &dsn;
quit;

data want;
set want;
obs+1;
run;

proc transpose data=want out=want2;
by obs;
var &vars.;
run;

proc sgplot data=want2;
styleattrs DATACOLORS=(white black);
heatmapparm x=_name_ y=obs colorgroup=col1/x2axis;
yaxis reverse integer grid;
x2axis type=discrete tickstyle=inbetween ;
run;