This might depend on what device you're using (dev=java, dev=activex, dev=png, etc) ...
But, if it's saying you must use numeric values, and you want them to show up as character, you could create numeric values in your data, and then have them print as the desired value using a user-defined format.
Here's a simple example I've modified to demonstrate...
proc format;
value my_fmt
1 = "A"
9 = "B"
17 = "C"
25 = "D"
;
run;
proc g3d data=sashelp.iris;
format PetalWidth my_fmt.;
scatter PetalLength*PetalWidth=SepalLength / size=1.8;
run;