1. The best way to control font size for consistency (or at least for my definition of consistency) of your font size, as you change the driver, or version of SAS/GRAPH, or ODS destination, or choice of chart, or whatever, is to use PCT (percent of vertical space available) as the units.
You can, of course, control the size of different parts of the graph directly, with the HEIGHT= (abbrev. H=) parameter, which is now available almost everywhere, or maybe even actually everywhere. And there will be exceptions where you absolutely need direct control. For those, use HEIGHT= where you need it.
However, you can set defaults with
GOPTIONS HTITLE=YourChoice PCT; (where YourChoice need not be an integer)
and
GOPTIONS HTEXT=YourOtherOrSameChoice PCT;
HTITLE controls the height ONLY of TITLE1, and the height of TITLE2, etc. is controlled by HTEXT.
Unless your footnote(s) contains only some boilerplate, you MIGHT want to make your footnote the same height as your title. Footnotes can be a place to put an important message, even if it is at the bottom, rather than the top of the image.
Rather than let SAS/GRAPH choose your defaults (which MIGHT change from version to version of the software), it is best to assert your preferences/standard with HTITLE and HTEXT.
When you say "if I compress the size, the font will become very small", do you mean "compress the displayed size of the image" in some other tool, e.g., Word or PowerPoint? If so, all of its components become smaller. If that's the concern about text size, you need to make your initial choice of text HEIGHT in SAS/GRAPH large enough to be readable in your final result. Sorry if I'm stating the obvious.
2. First, let me admit to a hang-up about rotated text.
We read left to right. Rotated text is always at least marginally less readable. Some examples of rotated text for x-axis tick mark values are a real nuisance, esp. when they are long strings and numerous.
The best place to put the labels for both the y-axis and the x-axis is in the title or the subtitle.
Often, if not almost always, the identity of the axis variables is ALREADY in the title or subtitle, either explicitly or implicitly. And labelling an x-axis of dates as "Date" is inherently superfluous.
The area used to display your graph proper is precious, and best not wasted on axis labels. And don't waste the time and attention of your viewer.
To suppress the label for an axis, use LABEL=NONE on its AXISn statement. You will need to point to the axis statement with HAXIS=AXISn, VAXIS=AXISn, MAXIS=AXISn, or RAXIS=AXISn, as appropriate to your graph. n is some integer, and both axes MIGHT use the same statement.
Too bad that one needs to do extra work and use extra code to suppress superfluous text.
TIP: If you want to minimize typing and code, but want all of your title lines to have the same font, same height, same color, use
TITLE1
FONT='YourTrueTypeFontChoice'
HEIGHT=YourHeightChoice PCT
COLOR=BLACK (unless using a non-light background color for decoration, rather than a visual communication function, black is ALWAYS the most readable color, and is the SAS/GRAPH default)
"title line 1 text"
JUSTIFY=CENTER
"title line 2 text"
JUSTIFY=CENTER
"title line 3 text";
JUSTIFY values can be LEFT, CENTER, or RIGHT. CENTER is the default for TITLE statements. That's why I did not code it before "title line 1 text". Be aware that if you use mixed choices for JUSTIFY in the same TITLEn statement, you will get text strings at different locations on the same line, until you repeat a previously used JUSTIFY value.
You also can use the JUSTIFY= trick to create line breaks in other text strings on your graph.
SideBar about graph titles:
Whenever appropriate, make your graph's top title line a headline.
I.e., tell the viewer the key inference from your data that is demonstrated by your graph. This is certainly feasible in an ad hoc, presentation graph. For production graphs, produced automatically with no opportunity to manual review and edit, such customization is usually impossible.
The usual variable label Information about Y versus X, Y by X, etc. can be put in your second title line.
LeRoy