© אגף התקשוב ,אוניברסיטת בר אילן
ד"ר סמדר שץ
קורס תוכנת מטלב ויישומיה
קורס תוכנת מטלב ויישומיה
שיעור מס' :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 2025