The YAXIS statement supports the TICKVALUEFORMAT= option that allows you specify a different format to display the tickmarks, please note that all the NL... formats will react to the LOCALE= setting on how to display a date. You can also use the VALUES= option to specify your tickmark values. See the examples below.
To get longer "symbols" you can use the TEXT plot statement.
Here are some examples (data comes from the sample provide by @Rick_SAS :
data DayMonth;
set dist_2017;
Day = day(datadate);
Month = month(datadate);
DayOfYear = mdy(Month, Day, 2017) - '31DEC2016'd; /* compute day of the year */
text = "——";
run;
options locale=en_us;
proc sgplot data=DayMonth;
symbolchar name=line char='2509'x;
scatter x=ind_code y=datadate / markerattrs=(symbol=line size=7pt);
xaxis type=discrete label='Industry';
yaxis label='Release Date (Day of Year)' type=time interval=quarter TICKVALUEFORMAT=nldatemdm6.;
title "Distribution of Earnings Release Date";
format datadate date9.;
run;
proc sgplot data=DayMonth;
symbolchar name=line char='2509'x;
scatter x=ind_code y=datadate / markerattrs=(symbol=line size=7pt);
text x=ind_code y=datadate text=text / textattrs=(color=red);
xaxis type=discrete label='Industry';
yaxis label='Release Date (Day of Year)' type=time
values=("20jul2017"d "08sep2017"d "28oct2017"d "17dec2017"d "05feb2018"d "27mar2018"d "16may2018"d "05jul2018"d)
tickvalueformat=nldatemdm6.
;
title "Distribution of Earnings Release Date";
format datadate date9.;
run;
... View more