News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren Reporting & Visualisierung PROC GCHART HBAR Zeilenumbruch in Achsenbeschriftung 3 January, 2008-17:40 jbendig Liebe SAS-User, erstmal Glückwunsch zu diesem Forum. Ich bin während einer Recherche auf dieses Forum aufmerksam geworden und will es gleich mal für ein Problem nutzen, welches mich seit einigen Tagen beschäftigt. Ich werte eine Umfrage aus und will ein Teil-Ergebnis mittels einer Grafik in einen Bericht übernehmen. Die Befragten konnten für die Frage nach ihrem Beschäftigungsstatus eine Mehrfachauswahl vornehmen, wobei jede Antwortmöglichkeit in eine separate Variable geschrieben wird. Um nun einen Überblick über den Status des Beantworters zu erhalten, habe ich die Variableninhalte umcodiert und pro Beobachtung zusammengefasst. In der von mir gewählten Grafik hbar werden auf der linken Seite die ticks der Variablen angezeigt. Leider werden die ticks nach 32 Zeichen abgeschnitten (sie werden also neben der Grafik verkürzt dargestellt, (aus "-beschuetzt_beschaeftigt-rente/pension/witwenr.-eu/bu-rente" wird z.b. "- beschuetzt_beschaeftigt-rente/p") Gibt es nun eine Möglichkeit, die Achsenbeschriftung umzubrechen, so dass der ganze String angezeigt wird? Vielleicht hat ja von Euch jemand eine Idee. /*Mit den Variablen B1-B10 werden folgende Antworten auf den Beschäftigungsstatus abgefragt und jeweils mit 1 codiert: Variable B1 : -Schueler/i.d.Ausb./Student Variable B2 : -Berufstaetig Variable B3 : -Hausfrau/-mann Variable B4 : -Wehr-/Zivildienst Variable B5 : -beschuetzt_beschaeftigt Variable B6 : -arbeitslos Variable B7 : -Rentenverfahren Variable B8 : -Rente/Pension/Witwenr. Variable B9 : -EU/BU-Rente Variable B10: -sonstiges */ DATA status; INPUT B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 ; DATALINES;.... 1.. 1 1.... 1..... 1
run; SET status; LENGTH WORK_STATUS $250 WORK_STATUS_1 $10 WORK_STATUS_2 $400; /*die erste Stelle in Variablen B1-10 auslesen und in Variable WORK_STATUS_1 schreiben*/ If B1 ne. then substr(work_status_1,1,1)=b1; If B2 ne. then substr(work_status_1,2,1)=b2; If B3 ne. then substr(work_status_1,3,1)=b3; If B4 ne. then substr(work_status_1,4,1)=b4; If B5 ne. then substr(work_status_1,5,1)=b5; If B6 ne. then substr(work_status_1,6,1)=b6; If B7 ne. then substr(work_status_1,7,1)=b7; If B8 ne. then substr(work_status_1,8,1)=b8; If B9 ne. then substr(work_status_1,9,1)=b9; If B10 ne. then substr(work_status_1,10,1)=b10; /*die 1 in Variable WORK_STATUS_1 codieren und in Variable WORK_STATUS_2 zusammenfassen*/ If substr(work_status_1,1,1)=1 then substr(work_status_2,1,27)="-schueler/i.d.ausb./studen If substr(work_status_1,2,1)=1 then substr(work_status_2,28,13)="-berufstaetig"; If substr(work_status_1,3,1)=1 then substr(work_status_2,41,15)="-hausfrau/-mann"; If substr(work_status_1,4,1)=1 then substr(work_status_2,56,18)="-wehr-/zivildienst"; If substr(work_status_1,5,1)=1 then substr(work_status_2,74,24)="-beschuetzt_beschaeftigt" If substr(work_status_1,6,1)=1 then substr(work_status_2,98,11)="-arbeitslos"; If substr(work_status_1,7,1)=1 then substr(work_status_2,19,16)="-rentenverfahren"; If substr(work_status_1,8,1)=1 then substr(work_status_2,125,23)="-rente/pension/witwenr." If substr(work_status_1,9,1)=1 then substr(work_status_2,148,12)="-eu/bu-rente"; If substr(work_status_1,10,1)=1 then substr(work_status_2,160,10)="-sonstiges"; /*Blanks aus Variable WORK_STATUS_2 löschen und nach Variable WORK_STATUS schreiben*/ WORK_STATUS=compress(WORK_STATUS_2); put WORK_STATUS; /*aus Variable status1 nicht benötigte Variablen löschen*/ SET status1; drop B1 B2 B3 B4 B5 B6 B7 B8 B9 B10; /*Frequency*/ PROC FREQ DATA=status1; TABLES WORK_STATUS; /*Graphische Darstellung der Verteilung*/ PROC GCHART DATA=status1; title1 Beschaeftigungsstatus;
title1 Beschaeftigungsstatus; hbar WORK_STATUS/ subgroup=work_status Type=freq axis=0 to 10 by 1 freq percent cfreq cpercent missing nozero autoref clipref caxis=black ctext=black cframe=lightgrey coutline=black frame width=3 space=2 nolegend ; QUIT; Foren: Reporting & Visualisierung Log in or register to post comments SPLIT-Option in der AXIS-Anweisung 3 January, 2008-18:09 AndreasMangold Vor PROC GCHART setzen Sie eine AXIS-Anweisung, die das Splitzeichen definiert, zum Beispiel: AXIS1 split='*'; In der HBAR-Anweisung dann MAXIS=AXIS1 schreiben. Natürlich müssen die Texte dann durch '*' getrennt werden, d.h. der DATA-Schritt muss noch angepasst werden. Leider werden aber niemals mehr als 32 Zeichen dargestellt. Log in or register to post comments Zeilenumbruch in der Achsenbeschriftung 4 January, 2008-11:55 jbendig Danke für die schnelle Antwort. Die Splitoption war mir nicht bekannt. Ich habe es probiert - leider hat mich das Ergebnis nicht zufriedengestellt. Schlussendlich habe ich den Variableninhalt eindeutiger codiert und in der Grafik mittels "Note" die Ausprägungen erklärt. Ist zwar auch nicht gerade das, was ich mir vorgestellt habe, aber so soll es gehen. /*Mit den Variablen B1-B10 werden folgende Antworten auf den Beschäftigungsstatus abgefragt und jeweils mit 1 codiert: Variable B1 : -Schueler/i.d.Ausb./Student Variable B2 : -Berufstaetig Variable B3 : -Hausfrau/-mann Variable B4 : -Wehr-/Zivildienst Variable B5 : -beschuetzt_beschaeftigt Variable B6 : -arbeitslos
Variable B6 : -arbeitslos Variable B7 : -Rentenverfahren Variable B8 : -Rente/Pension/Witwenr. Variable B9 : -EU/BU-Rente Variable B10: -sonstiges */ DATA status; INPUT B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 ; DATALINES;.... 1.. 1 1.... 1..... 1 run; SET status; LENGTH WORK_STATUS $250 WORK_STATUS_1 $10 WORK_STATUS_2 $400; /*die erste Stelle in Variablen B1-10 auslesen und in Variable WORK_STATUS_1 schreiben*/ If B1 ne. then substr(work_status_1,1,1)=b1; If B2 ne. then substr(work_status_1,2,1)=b2; If B3 ne. then substr(work_status_1,3,1)=b3; If B4 ne. then substr(work_status_1,4,1)=b4; If B5 ne. then substr(work_status_1,5,1)=b5; If B6 ne. then substr(work_status_1,6,1)=b6; If B7 ne. then substr(work_status_1,7,1)=b7; If B8 ne. then substr(work_status_1,8,1)=b8; If B9 ne. then substr(work_status_1,9,1)=b9; If B10 ne. then substr(work_status_1,10,1)=b10; If substr(work_status_1,1,1)=1 then substr(work_status_2,1,3)="(1)"; If substr(work_status_1,2,1)=1 then substr(work_status_2,4,3)="(2)"; If substr(work_status_1,3,1)=1 then substr(work_status_2,7,3)="(3)"; If substr(work_status_1,4,1)=1 then substr(work_status_2,10,3)="(4)"; If substr(work_status_1,5,1)=1 then substr(work_status_2,13,3)="(5)"; If substr(work_status_1,6,1)=1 then substr(work_status_2,16,3)="(6)"; If substr(work_status_1,7,1)=1 then substr(work_status_2,19,3)="(7)"; If substr(work_status_1,8,1)=1 then substr(work_status_2,21,3)="(8)"; If substr(work_status_1,9,1)=1 then substr(work_status_2,24,3)="(9)"; If substr(work_status_1,10,1)=1 then substr(work_status_2,27,4)="(10)"; /*Blanks aus Variable WORK_STATUS_2 löschen und nach Variable WORK_STATUS schreiben*/ WORK_STATUS=compress(WORK_STATUS_2); put WORK_STATUS;
put WORK_STATUS; /*aus Variable status1 nicht benötigte Variablen löschen*/ SET status1; drop B1 B2 B3 B4 B5 B6 B7 B8 B9 B10; /*Frequency*/ PROC FREQ DATA=status1; TABLES WORK_STATUS; PROC GCHART DATA=status1; title1 Beschaeftigungsstatus; note color=red height=12pt font=swissbi underlin=2 move=(80pt,105pt) 'Auspraegungen' note move=(80pt,85pt)'(1)= Schueler/in der Ausbildung/Student'; note move=(80pt,75pt)'(2)= Berufstaetig'; note move=(80pt,65pt)'(3)= Hausfrau/-mann'; note move=(80pt,55pt)'(4)= Wehr-/Zivildienst'; note move=(80pt,45pt)'(5)= beschuetzt beschaeftigt'; note move=(350pt,85pt)'(6)= arbeitslos'; note move=(350pt,75pt)'(7)= Rentenverfahren'; note move=(350pt,65pt)'(8)= Rente/Pension/Witwenrente'; note move=(350pt,55pt)'(9)= EU/BU-Rente'; note move=(350pt,45pt)'(10)= sonstiges' ; hbar WORK_STATUS/ subgroup=work_status Type=freq axis=0 to 10 by 1 freq percent cfreq cpercent missing nozero autoref clipref caxis=black ctext=black cframe=lightgrey coutline=black frame width=3 space=1 nolegend patternid= subgroup; pattern1 color=grey; pattern2 color=lightyellow; pattern3 color=yellow; pattern4 color=lightorange; pattern5 color=orange; pattern6 color=lightred; pattern7 color=red; pattern8 color=blue; pattern9 color=lightpurple; pattern10 color=purple; QUIT;
Log in or register to post comments