© אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה קורס תוכנת מטלב ויישומיה שיעור מס' :3הצגה גרפית שרטוט עקומות מאפייני העקומה ברירת המחדל לעקומה היא :צבע כחול ,קו רציף ,ללא סימנים (מרקרים). מאפייני העקומה מצוינים באמצעות ארגומנט נוסף' :צבע ו/או צורת קו ו/או סימן'. blue green red cyan magenta yellow black צבע צורת קו b g r c m y k - solid dashed -- dotted : -. dot-dashed סימנים ()markers אם מציינים סימן ,ברירת המחדל היא שאין קו. אם רוצים סימן וגם קו רציף ,יש לציין קו רציף (למרות שזו ברירת המחדל). )triangle (right )triangle (down )triangle (up )triangle (left pentagram hexagram ;)'Table = xlsread('births.xls ;)Years = Table(:,1 ;)Births = Table(:,2:end )'plot(Years,Births(:,1),'d ◄דוגמא :1הסקריפט d3linestylesמציג נתוני לידות מהלמ"ס. סימן בלי קו ,צבע ברירת מחדל מקווקו ,צבע אדום star square diamond point circle x + > v ^ < p h * s d . o x + )'hold on, plot(Years,Births(:,2),'--r )'plot(Years,Births(:,3),'.- סימן עם קו רציף ,צבע ברירת מחדל )'plot(Years,Births(:,4),'-.ko סימן עם קו-נקודה ,צבע שחור 13000 12000 11000 10000 9000 8000 7000 6000 2005 עמ' 1מתוך 11 שיעור 3 2000 1995 1990 1985 1980 1975 5000 1970 מרץ 15 קורס תוכנת מטלב ויישומיה © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ גרף פרמטרי load LDGWsineGW )'plot(T,deer,'r hold on )'plot(T,grass,'g בתהליך התלוי במשתנה אחד (למשל :זמן) מודדים כמה משתנים תלויים. ניתן לשרטט את המשתנים התלויים כפונקציה של המשתנה הבלתי-תלוי: (לדוגמא שרטוט מספר האנטילופות וכמות העשב כפונקציה של הזמן). 45 40 35 30 25 20 100 80 90 70 60 40 50 20 30 10 0 15 )plot(grass,deer בגרף פרמטרי משרטטים משתנה תלוי אחד כפונקציה של משתנה תלוי אחר. (לדוגמא שרטוט מספר האנטילופות כפונקציה של כמות העשב מציג את 40 המחזוריות של התהליך). 35 30 25 20 42.5 41.5 42 41 40.5 40 39 39.5 38.5 38 15 37.5 שרטוט כמה עקומות על מערכת צירים אחת שרטוט עמודות במטריצה: )plot(Years,Births אם xמערך חד-ממדי ו y-מטריצה (בעלת עמודות באורך המערך ,)x אז כל עמודה ב y-משורטטת כפונקציה של .x אם xו y-מטריצות באותם ממדים ,אז כל עמודה ב y-משורטטת כפונקציה של העמודה המתאימה ב.x- ציון כל העקומות בפקודה אחת :זוגות x,y )plot(X1,Y1,...,Xn,Yn )plot(X1,Y1,L1,...,Xn,Yn,Ln ציון עקומות +צורות קו :שלשות x,y,LineSpec )'plot(Years,Births(:,1),'^-',Years,Births(:,3),'.-',Years,Births(:,5),'-. אם פקודה אחת משרטטת כמה עקומות ,אז כל עקומה מקבלת צבע אחר ,לפי סדר 13000 ברירת -המחדל. 12000 11000 10000 9000 8000 7000 2005 עמ' 2מתוך 11 שיעור 3 2000 1995 1990 1985 1980 1975 6000 1970 מרץ 15 © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה hold on מעבר ממצב של "פקודת שרטוט חדשה מוחקת גרפים קודמים" למצב של "גרפים מצטברים". חזרה למצב של "מחיקת הקודם". hold off מעבר למצב של "גרפים מצטברים" ,כאשר עקומות חדשות משורטטות בצבעים hold all שונים. שרטוט עקומות במרחב )plot3(x,y,z בדומה לעקומות במישור ,משרטטים עקומות במרחב ע"י ציון 3הקואורדינטות ( +אופציונלי) צורת-קו. ◄דוגמא :2שרטוט סליל ע"י גרף פרמטרי. מעגל במישור ברדיוס :r ;3 ;)linspace(0,5,150 ;)r*cos(2*pi*t ;)r*sin(2*pi*t )1; plot3(x,y,v*t בסליל ,תנועה במישור מלווה גם בהתקדמות כלפי מעלה. = = = = = = vיחס המתיחה ,כלומר המרחק האנכי לכל סיבוב במישור. r t x y v 5 4 3 2 1 0 3 2 3 1 2 0 1 0 -1 -1 -2 -2 -3 -3 אנוטציה כותרת לגרף )'title('text כותרת לציר x )'xlabel('text כותרת לציר y )'ylabel('text )'text(x,y,'text טקסט במקום חופשי )text(x,y,'text','p1','v1','p2','v2'...vn,pn ציון תכונות טקסט שם התכונה pn ערכים אפשריים עבור vn הסבר ' 'FontNameשם גופן לפי הקיים במערכת ' 'FontSizeגודל הגופן (בנקודות) מספר (לפי אפשרויות המערכת) 'color of letters 'color כמו ציון צבעי עקומות 'thickness of letters 'Fontweight ' 'Rotationזווית סיבוב נגד כיוון השעון (מעלות) ''bold' 'demi' 'light' 'normal מספר אפשר להוסיף תכונות אלה לכל סוגי הטקסט (גם כותרות לצירים ולגרף). הוספת מקרא: בחירת מיקום המקרא: )legend('curve1','curve2',... )'legend('curve1','curve2',...,'location','loc אפשרויות עבור ':'loc כיוונים בתוך מערכת הצירים: כיוונים משניים עמ' 3מתוך 11 ''north' 'south' 'eat' 'west ''northeast' 'northwest' 'southeast' 'southwest שיעור 3 מרץ 15 ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה כיוונים מחוץ לצירים: © אגף התקשוב ,אוניברסיטת בר אילן 'northOutSide' 'northEastOutSide' etc. ''Best הבחירה הטו בה ביותר (אוטומטית) למזער "התנגשות" עם הנתונים הסתרת מקרא קיים (בלי לבטלו) )'legend('hide ביטול הסתרה )'legend('show )'legend('boxoff ביטול מסגרת סביב המקרא )'legend('boxon החזרת מסגרת סביב המקרא (ברירת מחדל) ◄דוגמא :3סקריפט d3oscilationsלשרטוט data from ecology files 65 סימולציה של מערכת אקולוגית. vi o r הסקריפט קורא מידע משלושה קבצים ,ובכל אחד 60 beh a מהם משרטט את התלות של אוכלוסיית האנטילופות 55 ked regular 45 40 deer population pea בזמן. 50 35 30 LDGWpeaks LDGWsine LDGWsineG 100 90 80 70 60 50 40 30 20 10 0 25 year מערכות צירים חלונות גרפיים כל הפקודות המשרטטות עקומות ומוסיפות טקסט פועלות על החלון הגרפי הנמצא "למעלה" או "בפוקוס" .כל חלון מצוין במספר. (עוד על גישה לחלונות גרפיים ,בשיעור על עצמים גרפיים). figure פתיחת חלון חדש (והעברת הפוקוס אליו). תכונות חלון :זוגות של שם תכונה וערך תכונה. ציון שם לחלון פתיחת חלון ללא ציון מספר החלון על המסגרת שלו )'figure('p1','v1',...'pn','vn )'figure('name','text )'figure('numbertitle','off h = figure קבלת מס' החלון החדש )close(h סגירת חלון מסוים close סגירת חלון נוכחי סגירת כל החלונות הגרפיים close all מעבר לחלון מסוים (יימצא "בפוקוס") )figure(h clf אתחול חלון קיים עמ' 4מתוך 11 שיעור 3 מרץ 15 קורס תוכנת מטלב ויישומיה © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ מערכות צירים על פלוט אחד ניתן להגדיר כמה מערכות -צירים בחלון גרפי אחד .כל הפקודות המשרטטות עקומות ומוסיפות טקסט פועלות על מערכת הצירים הנמצאת "בפוקוס". )subplot(rows,cols,idx החלון הגרפי מחולק ל rowsXcols-מערכות צירים .הפוקוס במערכת צירים מס' .idx הספרור נעשה לפי שורות: 1 2 3 4 5 6 כדי לשנות פוקוס למערכת צירים אחרת באותו "סידור" ,יש להפעיל שוב את הפקודה עם אותם מספרים עבור שורות ועמודות אבל מספר שונה עבור האינדקס .הפעלת הפקודה (באותו חלון גרפי) עם מספר שונה של שורות או עמודות מבטלת את ה"סידור" הקיים (ומוחקת גרפים קיימים אם היו). )]subplot(rows,cols,]idx1 idx2 ניתן גם "לאחד" צירים בסידור קיים ,אם הם סמוכים: האזור הנראה בגרף הפקודות הבאות משאירות מידע גרפי קיים כפי שהוא ,אבל משנות את האופן שבו הוא מוצג ל"צופה". )]axis([xmin,xmax,ymin,ymax קביעת האזור במישור קביעת גבולות ציר x )]xlim([xmin xmax קביעת גבולות ציר y )]ylim([ymin ymax axis auto חזרה לקביעת אזור אוטומטית axis manual "הקפאת" הגבולות במצב הנוכחי (כך שעקומות נוספות לא משנות את הגבולות) קביעת גבולות הצירים לפי ערכי הקיצון של הנתונים. axis tight אותן יחידות לציר xולציר y axis equal הוספת קווי אורך ורוחב grid on הורדת קווי אורך ורוחב grid off בגרף תלת ממדי: )]zlim([zmin,zmax ציר z )]axis([xmin,xmax,ymin,ymax,zmin,zmax גבולות כל המרחב )view(az,el קביעת זווית המבט: = azimuthזווית הצופה במישור xy = elevationזווית הצופה מעל מישור xy ללא קלט :קבלת מידע על המצב הנוכחי )]view([ax el xlm = xlim [az el]=view ◄דוגמא :4ארגון נתונים ושליפת חתכים מתוך .ecologyGLtable.txt האנטילופות בסימולציה מסוימת ,כפונקציה של של המספר ההתחלתי של אריות ושל אמפליטודת התנודות הכמות ההתחלתית של עשב .הטבלה מאורגנת באופן הבא: באוכלוסיית האנטילופות עבור מספר אריות נתון וכמות עשב נתונה. עמ' 5מתוך 11 שיעור 3 מספר אריות הקובץ בשם ecologyGLtable.txtכולל טבלה של אמפליטודת התנודות באוכלוסיית כמות התחלתית של עשב N/A מרץ 15 © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה הסקריפט d3ecologyמציג ערכים אלה בשתי צורות: של כמות התחלתית של עשב. 10 g0=39.7 g0=39.9 g0=40.1 g0=40.2 g0=40.3 ב .כפונקציה של ערכי כמות התחלתית של עשב, עבור כמה ערכים של מספר אריות. 5 18 20 14 16 10 12 6 8 4 deer population amplitude א .כפונקציה של מספר האריות ,עבור כמה ערכים 0 Initial lions 5 40.6 40.4 40.5 40.3 40.1 40.2 40 39.9 39.8 39.7 deer population amplitude L0=4 L0=7 L0=10 L0=13 L0=16 L0=19 10 0 39.6 Initial grass amount גרפים לוגריתמיים ציר xליניארי ,ציר yלוגריתמי )semilogy(x,y ציר yליניארי ,ציר xלוגריתמי )semilogx(x,y )loglog(x,y שני הצירים לוגריתמיים ◄דוגמא :5הסקריפט d3logplotמדגים כיצד הצגה גרפית מתאימה יכולה לזהות את סוג הפונקציה. linear plot log x plot 1 1 linear exponential power law logarithmic 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 10 log-log plot 0.8 3 2 2.5 1.5 1 log y plot 0 0 10 10 -1 -1 10 10 -2 0 10 10 0 -2 3 2 2.5 1.5 1 10 הדפסה ושמירה לקובץ print הדפסת החלון הנוכחי למדפסת ברירת מחדל: שמירה לקובץ עמ' 6מתוך 11 print filename device שיעור 3 מרץ 15 קורס תוכנת מטלב ויישומיה © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ דוגמאות לפורמטים גרפיים :ערכים עבור device BMP 24-bit -dbmp EPS black and white -deps JPEG 24-bit -djpeg PDF Color PDF file -dpdf print mypic -djpeg דוגמא לשמירת קובץ בפורמט :jpeg יווצר קובץ בשם mypic.jpg הצגה גרפית של משטחים שרטוט משטחים במרחב הצגה גיאומטרית של מטריצה : Mערך תא במטריצה מיוצג ע"י גובה מעל הנקודה המתאימה במישור. )mesh(M רשת מעל מישור xy לדוגמא נציג את ערכי האמפליטודה מקובץ )mesh(Amp ecologyGLtable.txt )xlabel('along row','fontsize',16 )ylabel('along column','fontsize',16 18 16 14 12 10 8 6 4 2 0 20 12 15 10 10 8 6 5 4 2 0 0 along column along row )surf(M משטח רציף )surf(x,y,M ציון ערכים נתונים לאורך צירי x,y לדוגמא נציג את ערכי האמפליטודות כפונקציה של כמות העשב ומספר האריות. )surf(g0,L0,Amp )xlabel('g0','fontsize',16 )ylabel('L0','fontsize',16 axis tight 16 14 12 10 8 6 4 2 0 20 40.6 15 40.4 40.2 10 40 39.8 39.6 g0 עמ' 7מתוך 11 שיעור 3 5 L0 מרץ 15 קורס תוכנת מטלב ויישומיה © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ )mesh(X,Y,M משטח כללי במרחב (גרף פרמטרי) ייצוג מישורי של מטריצה ייצוג ערכי מטריצה על פני מישור ,כאשר המבט אנכי (ה"צופה" נמצא בערך חיובי של zומסתכל אל מישור .)xy )pcolor(M מפת צבעים :ערך כל תא "ממופה" לצבע. )pcolor(x,y,M ציון ערכים נתונים לאורך צירי x,y shading flat סילוק קווי המתאר shading interp החלקת צבעי המשבצות (אינטרפולציה) )contour(M קווים שווי-ערך )contour(x,y,M ציון ערכים נתונים לאורך צירי x,y שרטוט nקווים שווי-ערך )contour(M,n שרטוט קווים שערכיהם נתונים במערך v )contour(M,v colorbar הצגת מקרא לצבעים הצגה גרפית של פונקציה של שני ארגומנטים פונקציה של שני ארגומנטים היא התאמה בין נקודה במישור ) (x,yלערך מספרי .כדי להציג גרפית פונקציה כזאת ,יש לייצר שריג של נקודות שהן כל הצירופים של כל הערכים מסדרה של ערכי xעם כל הערכים מסדרה של ערכי .y הפקודות הבאות מייצרות שריג של ערכי x,yבהינתן מערכים חד-ממדיים של ערכים לאורך הצירים .x,y )[Xn,Yn] = ndgrid(xg,yg )[xa,ya]=ndgrid(1:3,11:14 = xa 1 1 1 1 2 2 2 2 3 3 3 3 = ya 11 12 13 14 11 12 13 14 11 12 13 14 y x1,yM x1,y2 x1,y1 x2,yM x2,y2 x2,y1 xN,yM xN,y1 xN,y2 )[Xm,Ym] = meshgrid(xg,yg )[xb,yb]=meshgrid(1:3,11:14 = xb 1 2 3 1 2 3 1 2 3 1 2 3 = yb 11 11 11 12 12 12 13 13 13 14 14 14 x x xN,y1 x2,y1 x1,y1 xN,y2 x2,y2 x1,y2 xN,yM x1,yM x2,yM y פקודת meshgridמתאימה להצגה גרפית ,מאחר ש x-משתנה לאורך הציר האופקי (כמקובל במערכות צירים). עמ' 8מתוך 11 שיעור 3 מרץ 15 © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה ◄דוגמא :6תבנית התאבכות משני מקורות נקודתיים. השדה ממקור נקודתי במרחק rממנו נתון ע"י ) 2r 1 r ( . sinהשדה בכל נקודות המישור הוא סכום השדות משני מקורות נקודתיים. נחשב את השדה באזור במישור משני מקורות הנמצאים במקומות .y=0, x=±2 הסקריפט d3patternמציג את עוצמת השדה בשתי צורות :כמפת צבעים וכקווים שווי-ערך. Interference pattern in psudocolor map 10 6 8 4 6 y 2 4 0 2 10 6 8 4 2 -2 0 x -6 -4 -8 0 -10 Interference pattern in contour plot 10 8 6 y 4 2 10 8 6 4 2 -2 0 x -4 -6 -8 0 -10 עבודה עם צבעים שיטות לייצוג צבעים ייצוג צבע :ע"י שלשה RGB ערכים אפשריים עבור [0 1] :double ערכים אפשריים עבור [0 255] :uint8 שיוך צבעים למשטחים קיימות שתי שיטות לקביעת צבע של כל משבצת (במשטחים) או עקומה (ב:)contour- א .קביעת צבע ע"י שלשת :)TrueColor( RGBלכל משבצת במשטח יש לספק שלשה .המידע על הצבע הוא מערך תלת-ממדי nXmX3כאשר nXmממדי המטריצה המייצגת את המשטח. ב .קביעת צבע ע"י מפת-צבעים : colormapכל צבע מצוין ע"י מספר שלם ,שהוא האינדקס (המיקום) של הצבע במפת- הצבעים .מפת הצבעים היא מערך ,nX3כאשר כל שורה במערך היא שלשת double( RGBבתחום ] .)[0 1האורך המקסימלי האפשרי של מפת צבעים הוא .256 כיצד נקבע המיפוי :טווח הנתונים (בין מינימום למקסימום) מחולק לקטעים שווים ,כמספר השורות במפת הצבעים.כל הנקודות בערכים הכלולים במקטע מס' nממופות לצבע מס' nבמפת הצבעים. ברירת מחדל להצגת מטריצות ,בהעדר מידע על צבעים :שימוש בערכי המטריצה גם לגובה וגם לציון צבע ,ע"י מיפוי הערך לצבעים במפת-צבעים. cmap = colormap מציאת מפת-הצבעים הקיימת: עמ' 9מתוך 11 שיעור 3 מרץ 15 קורס תוכנת מטלב ויישומיה © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ colormap mapname שינוי מפת צבעים לאחת מהאפשרויות הקיימות במטלב )mapname(n חישוב מפת -צבעים באורך nמתוך אחת האפשרויות )colormap(M שימוש במפת -צבעים מחושבת M )]caxis([minval,maxval שינוי גבולות המיפוי )surf(M,C שינוי ברירת מחדל לצבעים :ציון צבע לכל משבצת. ))surf(x,y,z,abs(z shading flat, colormap jet view(-160,30), axis tight )]caxis([0 0.5 אם Cמערך דו-ממדי ,אז שיוך הצבע נעשה לפי מיפוי. 6 5 4 3 2 1 0 0 2 4 -1 6 8 10 אם Cמערך תלת-ממדי בעל 3מישורים, ;)C = cat(3,(z-3).^2/6,X.^2/100,Y.^2/100 surf(x,y,z,C), shading flat אז הצבע נקבע ע"י ערכי RGBשל שלושת view(-160,30), axis tight המישורים. עמ' 10מתוך 11 -10 -8 -6 -4 -2 0 2 4 6 8 10 שיעור 3 מרץ 15 קורס תוכנת מטלב ויישומיה © אגף התקשוב ,אוניברסיטת בר אילן ד"ר סמדר שץ ◄דוגמא :7הסקריפט d3colormapמציג מפת-צבעים בשתי צורות. ;)clrmap = hsv(32 d3colormap 1 0.8 0.4 rgb values 0.6 0.2 30 25 20 15 colormap entry 10 5 30 25 20 15 colormap entry 10 5 0 2 1.8 1.4 visual color 1.6 1.2 1 עבודה עם תמונות תמונה = מפת צבעים שבה כל ערך מיוצג ע"י פיקסל אחד במסך. קריאת תמונות: קריאת מטריצת RGB קריאת מטריצת אינדקסים +מפת צבעים ;)'C = imread('filename ;)'[cmat,cmap]= imread('filename אופן הייצוג בקובץ נקבע ע"י הפורמט הגרפי. הצגת תמונות: )image(C הצגת מטריצה Cכתמונה: מיפוי לקואורדינטות: )image([xmin,xmax],[ymin,ymax],C שינוי כיוון הצירים בהתאם למוסכמות של תמונה axis image הצגת תמונה כאשר ערכי Cאינדקסים למפת צבעים )imagesc(C מיפוי לקואורדינטות: התאמה לאזור נתון של מפת הצבעים: )imagesc(x,y,C )]imagesc(C,[imin,imax הערה :אפשרויות נוספות להצגת תמונות נמצאות ב ,Image Processong Toolbox-כלי ייעודי לעיבוד תמונה של מטלב. עמ' 11מתוך 11 שיעור 3 מרץ 15
© Copyright 2024