Achsenbeschriftung um 90° drehen
Hallo Zusammen,
Es werden das Minimum und Maximum aus einer Variable ermittelt und als Achsenwert weitergegeben.
Aber es funktioniert nicht, dass mit "label=(a=90)" die Beschriftung um 90° gedreht wird und das die where-Anweisung scheinbar nur für min und max gilt und nicht mehr für die Variable die im Boxplot dargestellt wird. Dort hat es den Anschein das Merkmal1 und Merkmal2 aus der gesamten SAS-Datei stammen und nicht aus der in der nur Merkmal3 und Merkmal4 vorhanden sind. Es kommt außerdem immer die Fehlermeldung:
HINWEIS: Processing beginning for PLOT statement number 1.
FEHLER: Unable to access AXIS information.
WARNUNG: Default axis scaling will be used.
WARNUNG: For process variable WTM_1 the VAXIS= values specified do not cover the data range.
WARNUNG: Default scaling is substituted.
Welche Möglichkeiten gibt es noch die Achsenbeschriftung zu drehen? Wenn die Buchstaben alle untereinanderstehen sieht einfach zu bescheiden aus. Wie könnte man das Label als Tabellenüberschrift anstatt der Achsenbeschriftung nehmen?
Danke
%LOCAL i var min max;
%DO i = 1 %TO 10;
%LET var = %SCAN(pth_1 awd_1 wtm_1 ctm_1 spd_1 act_1 stp_1 rst_1 rtm_1 rdu_1,&i);
PROC SQL NOPRINT;
SELECT MIN(&var) INTO : min
FROM oft_m
WHERE merkmal3='m' und merkmal4=1
;
SELECT MAX(&var) INTO : max
FROM oft_m
WHERE merkmal3='m' und merkmal4=1
;
QUIT;
AXIS1 order = (&min TO &max) label=(a=90);
proc boxplot data=oft_m;
title ' ';
title2 'im Zeitabschnitt1';
plot (&var)*merkmal2 (merkmal1) /
cboxes = dagr
cboxfill = ywh
cframe = vligb
vaxis = axis1
haxis = axis2
run;
%END;
%MEND plt;
%plt;
- Anmelden oder Registrieren um Kommentare zu schreiben

Hatte das Problem heute
Hatte das Problem heute auch,
für das Problem geibt es einen Hotfix von SAS:
http://support.sas.com/kb/18/225.html
Gruß MK
- in den sql abfragen musst
- in den sql abfragen musst Du wohl erstmal aus dem "und" jeweils ein "and" machen.
- beim proc boxplot fehlt imho noch ein semikolon am ende nach "axis2".
- und die Axis option um die Beschriftung zu drehen sollte so aussehen: value=(a=90).
Aküfi
Hallo Herr Haag,
bitte bitte nicht beim Redscope-Forum diese Abkürzungen wie imho einführen!
Selbst wenn es sonst wo üblich oder sogar total üblich ist: Ich finde sie schrecklich und bin froh, dass das Redscope-Forum bisher Aküfi-frei war.
Bitte ausserdem bedenken: Hier tummeln sich auch ältere Herr-/Frauschaften, die nicht den Internet-Slang mit der Muttermilch eingesogen haben und denen (und mir) zu liebe keine Abkürzungen.
Und falls es doch unbedingt sein muß, dann bitte so wie es sich in ordentlichen technischen oder wissenschaftlichen Texten gehört: Jede Abkürzung wird ordentlich eingeführt mit der passenden Lang-Version bzw. Erklärung bzw. Herleitung.
Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)
P.S.: SSI meint Schäfer Shop und das I kommt von International
OT: (das heisst Offtopic.
OT: (das heisst Offtopic. Also ein Beitrag abseits des Themas ;-) )
a) Sie haben vergessen zu erklären was ein Aküfi ist. Ich könnte es jetzt natürlich ergoogeln, wenn ich Lust hätte.
b) Sind das im Usenet seit bald Jahrzehnten gebräuchliche Abkürzungen, die ich mir in keinem Forum / Usergroup abgewöhnen werde.
Btw: (ja schon wieder *g*) Mir wäre meine Zeit zu schade, mich über sowas künstlich aufzuregen.
Nichts für ungut, nächstes mal reicht auch eine Persönliche Nachricht würde ich sagen :-) Damit lass ich das hier mal ruhen.
Abkürzungen
Hallo,
die Abkürzung Aküfi bedeutet <IronieOn>Abkürzungsfimmel<IronieOff> und ist eigentlich steinalt und im Off-Line-Bereich im vorigen Jahrhundert (als ich noch jung war) 'mal sehr in Mode gewesen ... ;-)
Das Usenet kenne ich z.B. nur vom hörensagen. Ich denke es ist wie mit der Groß-/Kleinschreibung in der deutschen Schriftsprache: Es ist für den Leser einfach bequemer, wenn man sich als Schreiber etwas Mühe macht. Meint: Groß-/Kleinschreibung beachten und wenig Abkürzungen verwenden.
Gruß
Hans Kneilmann
P.S.:
ich habe so aus Spaß nach btw gegoogelt. Bitte auswählen:
Bundestagswahl[en] (BTW)
Bundesverband der Deutschen Tourismuswirtschaft (BTW)
by the way (btw)
(so nebenbei)
es geht immer noch nicht
Hallo Herr Haag,
Vielen Dank. aber bewirkt value=(a=90) nicht das der Skalenwert gedreht wird? Es scheint als ob SAS den Befehl ignoriert. Es wird immer diese bescheuerte Voreinstellung genommen wo alle
B
u
c
h
s
t
a
b
e
n
untereinanderstehen. Diese finde ich aber optisch nicht sehr ansprechend.
%LOCAL i var min max;
%DO i = 1 %TO 10;
%LET var = %SCAN(pth_1 awd_1 wtm_1 ctm_1 spd_1 act_1 stp_1 rst_1 rtm_1 rdu_1,&i);
PROC SQL NOPRINT;
SELECT MIN(&var) INTO : min
FROM oft_m
WHERE merkmal3='m' and merkmal4=1
;
SELECT MAX(&var) INTO : max
FROM oft_m
WHERE merkmal3='m' and merkmal4=1
;
QUIT;
AXIS1 order = (&min TO &max) label=(a=90);
proc boxplot data=oft_m;
title ' ';
title2 'im Zeitabschnitt1';
plot (&var)*merkmal2 (merkmal1) /
cboxes = dagr
cboxfill = ywh
cframe = vligb
vaxis = axis1
haxis = axis2;
run;
%END;
%MEND plt;
%plt;
Hinweis zu Angle/Rotate bei Achsenlabels
Hallo,
an dieser Stelle möchte ich noch einen kurzen Hinweis zu den Optionen Angle und Rotate geben. Diese Angaben müssen immer vor dem Textstring stehen, der als Label an die Achse gezeichnet werden soll. Sonst wird dies ignoriert.
Rotate dreht den Buchstaben um die gewisse Gradzahl aber die Standardausrichtung bleibt erhalten. (Titel der x/y-Achse sind waagerecht).
Angle dreht die Standardausrichtung um die gewisse Gradzahl. D.h. möchte man die y-Achsenbeschriftung senkrecht haben dann:
Bei x-Achse ist dann nix zu ändern: