שיעור מס' 4: שרטוט עקומות שרטוט עקומות פקודת plot מקבלת שני מערכים של ערכי ציר x וערכי ציר y, ומשרטטת עקומה שעוברת דרך כל הנקודות ( x),y בהתאמה. צורת השימוש:.plot(x,y) אם מפעילים את הפקודה על מערך אחד בלבד, אז ברירת המחדל היא שהמערך הוא ערכי y ואילו ערכי x הם האינדקסים, כלומר הפקודה משרטטת עקומה שעוברת דרך כל הנקודות (.(,y שרטוט כמה עקומות על מערכת צירים אחת plot(x,y,x,y,...,x,y) 6 ציון כל העקומות בפקודה אחת: זוגות x,y אם פקודה אחת משרטטת כמה עקומות, אז כל עקומה מקבלת צבע אחר, לפי סדר ברירת-המחדל. load LDGW plot(t,lios,t,grass,t,deer) שרטוט עקומות במערכת-צירים אחת ע"י פקודות נפרדות: מעבר ממצב של "פקודת שרטוט חדשה מוחקת גרפים קודמים" למצב של "גרפים מצטברים". (עקומות נוספות משורטטות בצבעים שונים) חזרה למצב של "מחיקת הקודם". מאפייני העקומה ברירת המחדל לעקומה היא: צבע כחול, קו רציף, ללא סימנים (מרקרים). 6 7 8 9 hold o hold off מאפייני העקומה מצוינים בפקודה באמצעות ארגומנט נוסף: 'צבע ו/או צורת קו ו/או סימן'. צבע b blue g gree r red c cya m mageta y yellow k black סימנים (markers) צורת קו - solid -- dashed : dotted -. dot-dashed * star s square d diamod. poit o circle x x + + > triagle (right) v triagle (dow) ^ triagle (up) < triagle (left) p petagram h hexagram אם מציינים סימן, ברירת המחדל היא שאין קו. אם רוצים סימן וגם קו רציף, יש לציין קו רציף (למרות שזו ברירת המחדל). עמ' מתוך 8
שיטה נוספת לתיאור צבע כל נקודה על מסך המחשב, הנקראת פיקסל,(pixel) כוללת שלושה רכיבים פיסיקליים: אחד יכול לייצר צבע אדום, אחד ירוק, ואחד כחול. כל צבע שניתן להצגה על מסך המחשב הוא צירוף של שלושת הצבעים האלה, כל אחד בעוצמה שונה. שיטת ייצוג זו נקראת rgb (אדום, ירוק כחול). לכן צבע במסך המחשב מיוצג ע"י שלשה של עוצמות האדום, ירוק וכחול. למשל: [ ] [ ] שחור צהוב [ ] טורקיז (cya) [ ] לבן [...] [ ] אדום אפור [.4. ] [ ] כחול חום דוגמא : הסקריפט d4liestyles מציג נתוני לידות מהלמ"ס שנקראו אינטראקטיבית מקובץ births.xls plot(year,ja,'d') סימן מעוין בלי קו, צבע ברירת מחדל hold o, plot(year,feb,'--r') מקווקו, צבע אדום plot(year,mar,'.-') סימן עם קו רציף, צבע ברירת מחדל plot(year,apr,'-.ko') סימן עם קו-נקודה, צבע שחור plot(year,may,':','color',[.4. ]) סימן בקו מנוקד, צבע מצוין ע"י rgb 9 8 7 6 97 97 98 98 99 99 load LDGW plot(t,deer,'r') hold o plot(t,grass,'g') 48 46 גרף פרמטרי בתהליך התלוי במשתנה אחד (למשל: זמן) מודדים כמה משתנים תלויים. ניתן לשרטט את המשתנים התלויים כפונקציה של המשתנה הבלתי-תלוי: (לדוגמא שרטוט מספר האנטילופות וכמות העשב כפונקציה של הזמן). 44 4 8 6 6 7 8 9 עמ' מתוך 8
plot(grass,deer,'b') 48 46 בגרף פרמטרי משרטטים משתנה תלוי אחד כפונקציה של משתנה תלוי אחר. (לדוגמא שרטוט מספר האנטילופות כפונקציה של כמות העשב מציג את המחזוריות של התהליך). 44 4 8 6 9.8 9.9....4..6.7 N R N = u u = = x xˆ + y yˆ R N דוגמא : הפונקציה d4rw מחשבת מהלך אקראי במישור. R משתנה בסדרה של N צעדים בדידים מהלך הוא תהליך בו גודל R...,,..., u. u u, ערכו של לאחר N צעדים הוא סכום כל הצעדים:, = u u N = במהלך במימד אחד (לאורך קו) u הם מספרים (בעלי סימן חיובי או שלילי) ו- R הוא סכום מצטבר. במהלך בשני ממדים u הם וקטורים של שני רכיבים: גם R הוא וקטור של שני רכיבים. כל אחד מן הרכיבים של R הוא סכום מצטבר של רכיבי הצעדים: = xˆ N x + yˆ N y מהלך אקראי הוא מהלך שבו הצעדים u אקראיים, כלומר הצעד הבא בלתי תלוי בצעדים הקודמים. הפונקציה RWD מחשבת מהלך אקראי חד ממדי בן N צעדים. המעתק בכל צעד הוא מספר אקראי בין [,-]. הפונקציה d4rw מחשבת קואורדינטות של מהלך אקראי דו ממדי בן N צעדים. המעתק בכל אחד מן הצירים בכל צעד הוא מספר אקראי בין [,-]. מאחר שאין קשר בין הרכיבים של שני הצירים, ניתן להתייחס למהלך אקראי דו- ממדי כאל שני מהלכים אקראיים, אחד בכל ציר. סדרת המעתקים בכל ציר מיוצרת ע"י הפעלת הפונקציה.RWD נשרטט תחילה את ערכי קואורדינטות x,y לחוד, כפונקציה של מספר הצעד: N=; = :N; [x,y]=d4rw(n,[,]); plot(,x,'o-',,y,'s-') - - 6 7 8 9 עמ' מתוך 8
plot(x,y,'o--') נשרטט את מסלול החלקיק, כלומר מקום החלקיק - במישור אחרי כל צעד: גרף פרמטרי של y כפונקציה של x: - - -4 - -6-7 6 7 8 9 4 הצגת ערכי שגיאה נניח שיש שגיאה במדידה של כל נתון (נקודה). השגיאה מצוינת כקו זקוף מעל ומתחת לכל נקודה, באמצעות פקודת.errorbar אם השגיאה סימטרית (מעל ומתחת לערך המדוד), אז מספר אחד מייצג את הסטייה מעל ומתחת לערך המדוד. במקרה של שגיאה לא סימטרית, יש לציין לחוד את הסטייה מתחת לערך המדוד ואת השגיאה מעל הערך המדוד. האופרנדים הם מערכים, כולם באותו אורך. הפקודה משרטטת גם את העקומה וגם את קווי השגיאות. errorbar(y,error) errorbar(x,y,error) האופרנד הראשון הוא ערכי Y והשני הוא השגיאה הסימטרית. שני האופרנדים הראשונים הם,XY השלישי הוא השגיאה הסימטרית. שני האופרנדים הראשונים הם,XY השניים האחרונים הם השגיאות errorbar(x,y,errordow,errorup) מתחת ומעל לנקודה. errorbar(x,y,error,'liespec')..8.6.4. ניתן להוסיף גם מאפייני עקומה (כמתואר למעלה): דוגמא: נחשב נתונים y=si(x) ונניח בכולם שגיאה אחידה סימטרית x =.:.:pi; y=si(x); e = lispace(.,.,legth(x)); errorbar(x,y,e,'o:k'). -..... שרטוט מערכים מרוכבים פקודות לשרטוט עקומות מתעלמות מחלקים דמיוניים של ערכים מרוכבים במערכים המשורטטים (ומוציאות הודעת אזהרה). יש לכך יוצא מן הכלל אחד: plot(r,'o:b').8.6.4. -. -.4 -.6 -.8 - - -.8 -.6 -.4 -...4.6.8 אם פקודת plot כוללת רק מערך מספרי אחד, ובמערך זה יש מספרים מרוכבים, אז הפקודה מציגה את הערכים במישור המרוכב, כאשר החלקים הממשיים נלקחים כקואורדינטות x והחלקים הדמיוניים נלקחים כקואורדינטות y. לדוגמא, נציג במישור המרוכב את כל השורשים המרוכבים של המספר, הנמצאים על קודקודיו של מחומש. נחבר בין הקודקודים ב"דילוגים" של קודקודים בכל צעד: R = exp(i*pi/); R = R.^(*(:)); עמ' 4 מתוך 8
plot(x,y,z) d4helix(,,); 4 שרטוט עקומות במרחב בדומה לעקומות במישור, משרטטים עקומות במרחב ע"י ציון הקואורדינטות + (אופציונלי) צורת-קו. דוגמא : סליל מתואר ע"י תנועה במעגל במישור xy ותנועה ליניארית בציר z, כאשר על כל השלמת סיבוב אחד במישור xy יש התקדמות באורך v לאורץ ציר z. הפונקציה d4helix משרטטת סליל ברדיוס r וב"מהירות אנכית" v ע"י גרף פרמטרי. הפונקציה מציגה "לולאות" של הסליל. 4 - - - -4 - title('text') xlabel('text') ylabel('text') text(x,y,'text') text(x,y,'text','p','v','p','v'...v,p) אנוטציה כותרת לגרף כותרת לציר x כותרת לציר y טקסט במקום חופשי ציון תכונות טקסט שם התכונה ערכים אפשריים עבור הסבר לפי הקיים במערכת שם גופן v מספר (לפי אפשרויות המערכת) גודל הגופן (בנקודות) כמו ציון צבעי עקומות color of letters 'bold' 'demi' 'light' 'ormal' thickess of letters מספר זווית סיבוב נגד כיוון השעון (מעלות) p 'FotName' 'FotSize' 'color' 'Fotweight' 'Rotatio' אפשר להוסיף תכונות אלה לכל סוגי הטקסט (גם כותרות לצירים ולגרף). leged('curve','curve',...) הוספת מקרא: leged('curve','curve',...,'locatio','loc') בחירת מיקום המקרא: אפשרויות עבור :'loc' 'orth' 'south' 'eat' 'west' כיוונים בתוך מערכת הצירים: 'ortheast' 'orthwest' 'southeast' 'southwest' כיוונים משניים 'orthoutside' 'ortheastoutside' etc. כיוונים מחוץ לצירים: 'Best' הבחירה הטובה ביותר (אוטומטית) למזער "התנגשות" עם הנתונים leged('hide') הסתרת מקרא קיים (בלי לבטלו) leged('show') ביטול הסתרה leged('boxoff') ביטול מסגרת סביב המקרא leged('boxo') החזרת מסגרת סביב המקרא (ברירת מחדל) עמ' מתוך 8
deer populatio 6 6 4 peaked behavior data from ecology files double frequecy regular דוגמא 4: סקריפט d4oscilatios לשרטוט סימולציה של מערכת אקולוגית. הסקריפט קורא מידע משלושה קבצים, ובכל אחד מהם משרטט את התלות של אוכלוסיית האנטילופות בזמן. מערכות צירים חלונות גרפיים כל הפקודות המשרטטות עקומות ומוסיפות טקסט פועלות על החלון הגרפי הנמצא "למעלה" או "בפוקוס". כל חלון מצוין במספר. פתיחת חלון חדש (והעברת הפוקוס אליו). LDGWsie LDGWsieG LDGWpeaks 6 7 8 9 figure year figure('p','v',...'p','v') figure('ame','text') figure('umbertitle','off') h = figure close(h) close close all תכונות חלון: זוגות של שם תכונה וערך תכונה. ציון שם לחלון פתיחת חלון ללא ציון מספר החלון על המסגרת שלו קבלת מס' החלון החדש סגירת חלון מסוים סגירת חלון נוכחי סגירת כל החלונות הגרפיים מעבר לחלון מסוים (יימצא "בפוקוס") אתחול חלון קיים figure(h) clf מערכות צירים על ציור אחד ניתן להגדיר כמה מערכות-צירים בחלון גרפי אחד. כל הפקודות המשרטטות עקומות ומוסיפות טקסט פועלות על מערכת הצירים הנמצאת "בפוקוס". החלון מחולק ל- cols rows X מערכות צירים. הפוקוס במערכת צירים מס'.idx הספרור נעשה לפי שורות: subplot(rows,cols,idx) 4 6 כדי לשנות פוקוס למערכת צירים אחרת באותו "סידור", יש להפעיל שוב את הפקודה עם אותם מספרים עבור שורות ועמודות אבל מספר שונה עבור האינדקס. הפעלת הפקודה (באותו חלון גרפי) עם מספר שונה של שורות או עמודות מבטלת את ה"סידור" הקיים (ומוחקת גרפים קיימים אם היו). subplot(rows,cols,[idx idx]) ניתן גם "לאחד" צירים בסידור קיים, אם הם סמוכים: עמ' 6 מתוך 8
האזור הנראה בגרף הפקודות הבאות משאירות מידע גרפי קיים כפי שהוא, אבל משנות את האופן שבו הוא מוצג ל"צופה". axis([xmi,xmax,ymi,ymax]) xlim([xmi xmax]) ylim([ymi ymax]) axis auto axis maual axis tight axis equal grid o grid off קביעת האזור במישור קביעת גבולות ציר x קביעת גבולות ציר y חזרה לקביעת אזור אוטומטית "הקפאת" הגבולות במצב הנוכחי (עקומות נוספות לא משנות את הגבולות) קביעת גבולות הצירים לפי ערכי הקיצון של הנתונים. אותן יחידות לציר x ולציר y הוספת קווי אורך ורוחב הורדת קווי אורך ורוחב דוגמא : שרטוט מסלול של מהלך אקראי דו-ממדי מקרוב ומרחוק. d4far_close 8 6 whole picture הסקריפט d4far_close משתמש בפונקציה d4rw כדי לייצר את קואורדינטות המסלול, ואחר כך משרטט את המסלול במלואו, וכן תמונת תקריב של חלק - - - 6 המסלול סביב נקודת ההתחלה. closeup 4 8 6 6 7 8 9 4 בגרף תלת ממדי: zlim([zmi,zmax]) axis([xmi,xmax,ymi,ymax,zmi,zmax]) view(az,el) view([ax el]) xlm = xlim ציר z גבולות כל הצירים קביעת זווית המבט: xy זווית הצופה במישור = azimuth xy זווית הצופה מעל מישור = elevatio ללא קלט: קבלת מידע על המצב הנוכחי [az el]=view עמ' 7 מתוך 8
דוגמא 6: הסקריפט d4view מציג סליל משתי זוויות במרחב. הסליל משורטט ע"י הפונקציה d4helix והסקריפט משנה את זווית המבט בכל גרף. - - - - גרפים לוגריתמיים semilogy(x,y) ציר x ליניארי, ציר y לוגריתמי semilogx(x,y) ציר y ליניארי, ציר x לוגריתמי loglog(x,y) שני הצירים לוגריתמיים דוגמא 7: הסקריפט d4logplot מדגים כיצד הצגה גרפית מתאימה יכולה לזהות את סוג הפונקציה. liear plot log x plot liear.8.6 expoetial power law logarithmic.8.6.4.4.. 6 8 log y plot log - log plot - - 6 8 prit prit fileame device BMP 4-bit -dbmp EPS black ad white -deps JPEG 4-bit -djpeg PDF Color PDF file -dpdf prit mypic -djpeg הדפסה ושמירה לקובץ הדפסת החלון הנוכחי למדפסת ברירת מחדל: שמירה לקובץ דוגמאות לפורמטים גרפיים: ערכים עבור device דוגמא לשמירת קובץ בפורמט :jpeg יווצר קובץ בשם mypic.jpg עמ' 8 מתוך 8