رفتن به محتوا

نمودارهای پراکندگی با pgfplots

only marks را به یک \addplot در axis بستهٔ pgfplots اضافه کنید تا نقطه‌ها بدون خط کشیده شوند؛ شکل را با mark= انتخاب کنید و نقطه‌ها را از مختصات یا یک جدول بخوانید.

نقطه‌های بدون خط

نمودار پراکندگی سری‌ای است که فقط با نشانه کشیده می‌شود. only marks را به \addplot اضافه کنید، همراه با + تا رنگ و نشانهٔ فهرست چرخه حفظ شود.

دو گروه نقطه

\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 فقط به نشانه‌ها سبک می‌دهد، مثلاً یک نشانهٔ توخالی با پرشدگی سفید.

نشانه‌های متفاوت برای سری‌های متفاوت

\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).

نقطه‌هایی که از یک جدول درون‌خطی خوانده می‌شوند

\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 را اضافه کنید.

نقطه‌هایی که بر اساس ستون سوم رنگ گرفته‌اند

\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: یک نشانه برای همهٔ نقطه‌ها

\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

جزئیات کامل نشانه‌ها و گزینه‌های scatter در راهنمای 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.