BookmarkSubscribeRSS Feed
Hagay
SAS Employee

אחת מהיכולות היותר מעניינות ב – sgplot  היא האפשרות לצייר כמה גרפים אחד על השני וכך ליצור די בקלות המחשות ויזואליות מעניינות.

נתחיל עם דוגמא די פשוטה ושימושית – הצגת גרף עמודות וגרף קו בגרף אחד:

proc sgplot data=sashelp.cars 	noautolegend;
	vbar type ;
	vline type / response=msrp stat=mean y2axis lineattrs=(thickness=3px) ;
	yaxis label="כמות";
	y2axis min=0 label="מחיר ממוצע";
run;

בדוגמא לעיל בנינו שני גרפים אחד על השני. סדר הציור שלהם הוא הסדר בו הם מופיעים בקוד כך שגרף הקו מופיע על גרף העמודות (נסו להחליף את הסדר של השורות ותראו מה יוצא).

 

כמובן שאפשר להמשיך ולשכלל את הויזואליזציות שניתן לייצר בעזר sgplot. הדוגמא הבאה כוללת 3 גרפים אחד על השני. כדי למנוע מגרפים "עליונים" יותר בסדר הציור שלהם להסתיר מידע מגרפים שמתחתם ניתן לשלוט על מידת השקיפות שלהם:

proc sgplot data=sashelp.cars ;
	hbar type /x2axis;
	hbar type/response=invoice stat=mean barwidth=0.5 fillattrs=(color=green transparency=0.5);
	dot type / stat=mean response=msrp limits=both limitstat=stddev;
	xaxis min=0 label="מחיר ממוצע";
	x2axis label="כמות";
	yaxis display=(nolabel);
run;

הדוגמא האחרונה להיום כוללת ארבעה גרפים מסוגים שונים כדי להציג את מירב המידע האפשרי בתמונה אחת:

proc sgplot data=SASHELP.CLASSFIT;
	band x=height lower=lower upper=upper/legendlabel="95% רווח סמך" fillattrs=(color=lightblue);
	band x=height lower=lowermean upper=uppermean / fillattrs=(color=orange) legendlabel="95% רווח סמך לממוצע";
	scatter x=height y=weight/legendlabel="תצפיות";
  	series x=height y=predict/legendlabel="קו רגרסיה";
run;

מספר השילובים הוא עצום אבל ישנן מספר מגבלות שלרוב הן די מובנות מאליהן כמו למשל שלא ניתן לשלב גרפים עם ציר בדיד (למשל ארץ) וגרף עם ציר רציף (למשל מחיר) שכן אין לצירים שכאלו שום שפה משותפת.

 

האתגר היותר קשה הוא להשתמש נכון בכל היכולות הללו כדי להעביר בגרף את כל המידע שאנחנו רוצים ובדיוק את המידע הזה ללא אינפורמציה מיותרת כדי להוביל את הקורא (צופה?) אל המסקנה המדויקת אליה אנחנו מכוונים.

 

חגי

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Discussion stats
  • 0 replies
  • 290 views
  • 2 likes
  • 1 in conversation