דילוג לתוכן

גרפי פיזור עם pgfplots

מוסיפים only marks ל-\addplot בתוך axis של pgfplots, כך שהנקודות מצוירות בלי קווים; בוחרים את הצורה עם mark= וקוראים את הנקודות מקואורדינטות או מטבלה.

נקודות בלי קווים

גרף פיזור הוא סדרה שמצוירת בסמנים בלבד. מוסיפים only marks ל-\addplot, עם + כדי לשמור על הצבע והסמן מרשימת המחזור.

שתי קבוצות של נקודות

LaTeXמבוא: \usepackage{pgfplots}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\begin{tikzpicture}
  \begin{axis}[xlabel={Height (m)}, ylabel={Mass (kg)}, legend pos=north west]
    \addplot+[only marks] coordinates {
      (1.62,55) (1.68,61) (1.71,66) (1.75,69) (1.80,74) (1.84,79)};
    \addplot+[only marks] coordinates {
      (1.58,49) (1.64,57) (1.69,58) (1.73,64) (1.77,68)};
    \legend{Group A, Group B}
  \end{axis}
\end{tikzpicture}
סודר על ידי Scissor LaTeX: שתי קבוצות של נקודות

צורות, גדלים וצבעים של סמנים

mark= קובע את הצורה ו-mark size= את הרדיוס שלה (2pt כברירת מחדל). צורות ממולאות מסתיימות ב-*. mark options מעצב רק את הסמנים, למשל סמן פתוח עם מילוי לבן.

סמנים שונים לסדרות שונות

LaTeXמבוא: \usepackage{pgfplots}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\begin{tikzpicture}
  \begin{axis}[enlargelimits=0.15, legend pos=outer north east]
    \addplot[only marks, mark=o, blue] coordinates {(1,2) (2,3) (3,2.5)};
    \addplot[only marks, mark=square*, red, mark size=3pt] coordinates {(1,1) (2,1.8) (3,1.2)};
    \addplot[only marks, mark=triangle*, teal, mark options={fill=white}] coordinates {(1,3) (2,4) (3,3.8)};
    \addplot[only marks, mark=x, black, mark size=4pt] coordinates {(1.5,0.5) (2.5,0.8)};
    \legend{circle, square, triangle, cross}
  \end{axis}
\end{tikzpicture}

הצורות שעובדות מפורטות בדף גרפי קווים.

נקודות מטבלה

כשיש יותר מכמה נקודות, כותבים אותן כטבלה. השורה הראשונה נותנת שמות לעמודות; x= ו-y= בוחרים את העמודות לציור. הטבלה יכולה להיות בתוך הקוד, כמו כאן, או בקובץ (ראו נתונים מקובץ CSV).

נקודות שנקראות מטבלה בתוך הקוד

LaTeXמבוא: \usepackage{pgfplots}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\begin{tikzpicture}
  \begin{axis}[xlabel={Hours studied}, ylabel={Points}]
    \addplot[only marks, mark=*, blue!70!black] table[x=hours, y=points] {
      hours points
      2     21
      3     26
      4     30
      5     29
      6     37
      7     40
      8     44
    };
    \addplot[red, domain=2:8] {13.5 + 3.8*x};
  \end{axis}
\end{tikzpicture}

הקו האדום הוא נוסחה שמצוירת מעל הנקודות, דרך פשוטה להראות מגמה מותאמת.

צביעת נקודות לפי ערך

עם scatter, כל נקודה נצבעת לפי ערך ממפת הצבעים. point meta=y משתמש בערך ה-y; scatter src=explicit עם meta= קורא עמודה שלישית. מוסיפים colorbar כדי להציג את הסקאלה.

נקודות שנצבעות לפי עמודה שלישית

LaTeXמבוא: \usepackage{pgfplots}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\begin{tikzpicture}
  \begin{axis}[colorbar, colormap/viridis, xlabel=$x$, ylabel=$y$]
    \addplot[scatter, only marks, mark size=3pt, scatter src=explicit]
      table[x=x, y=y, meta=t] {
      x   y   t
      0.5 1.0 10
      1.0 2.2 15
      1.6 1.4 21
      2.1 3.0 28
      2.8 2.1 33
      3.3 3.6 44
    };
  \end{axis}
\end{tikzpicture}

מחלקות של נקודות

ב-pgfplots, scatter/classes נותן לכל שם מחלקה בעמודה סמן משלו. Scissor LaTeX עוד לא תומך בזה: מתעלמים מהאפשרות עם הודעה, וכל הנקודות מקבלות אותו סמן.

scatter/classes: סמן אחד לכל הנקודות

LaTeXמבוא: \usepackage{pgfplots}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=5cm]
    \addplot[scatter, only marks, scatter src=explicit symbolic,
             scatter/classes={a={mark=square*, blue}, b={mark=*, red}}]
      table[meta=group] {
      x y group
      1 1 a
      2 2 b
      3 1.5 a
    };
  \end{axis}
\end{tikzpicture}

לשונית הבעיות: pgfplots option 'scatter/classes' is not supported yet

מה שונה מהתקנת TeX

הפרטים המלאים על סמנים ועל אפשרויות פיזור נמצאים במדריך pgfplots: ctan.org/pkg/pgfplots.

שאלות ותשובות

איך יוצרים גרף פיזור בלי קווים?

מוסיפים only marks לאפשרויות של \addplot, למשל \addplot+[only marks] coordinates {...};.

איך משנים את גודל הנקודות?

משתמשים ב-mark size=3pt על ה-\addplot. הערך הוא הרדיוס של הסמן.

אפשר לצייר נקודות מקובץ CSV?

כן. מעלים את הקובץ לפרויקט וכותבים \addplot+[only marks] table[x=a, y=b, col sep=comma] {file.csv};.

כל דוגמה בדף הזה מסודרת על ידי Scissor LaTeX בזמן בניית האתר. עודכן לאחרונה: 2026-11-07.