رفتن به محتوا

مبانی pgfplots: رسم نمودار در LaTeX با مثال

pgfplots را بارگذاری کنید، یک tikzpicture با یک axis درونش باز کنید و هر سری داده را با \addplot اضافه کنید، یا به صورت فهرستی از مختصات یا به صورت یک فرمول.

کوچک‌ترین نمودار

هر نمودار pgfplots همین سه لایه را دارد: یک tikzpicture، یک axis درون آن، و یک \addplot برای هر سری داده. بسته را با \usepackage{pgfplots} در پیش‌درآمد بارگذاری کنید.

چهار نقطه که با یک خط به هم وصل شده‌اند

\begin{tikzpicture}
  \begin{axis}
    \addplot coordinates {(0,1) (1,3) (2,2) (3,4)};
  \end{axis}
\end{tikzpicture}

محور بازه و درجه‌بندی‌هایش را خودش از روی داده انتخاب می‌کند. یک \addplot ساده رنگ و نشانه‌اش را از فهرست چرخهٔ پیش‌فرض می‌گیرد: آبی با نشانه‌های گرد برای سری اول، قرمز با مربع برای سری دوم، و همین‌طور الی آخر.

رسم یک فرمول

به جای مختصات، یک فرمول درون آکولاد به \addplot بدهید. domain بازهٔ x را تعیین می‌کند و samples تعداد نقطه‌ها را. بدون آن‌ها، pgfplots بازهٔ -5 تا 5 را با 25 نمونه به کار می‌برد.

یک تابع با domain و samples

\begin{tikzpicture}
  \begin{axis}
    \addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
  \end{axis}
\end{tikzpicture}

گزینه‌های درون کروشه پس از \addplot به آن سری سبک می‌دهند. وقتی گزینه‌ها را بدون + بدهید، سری با رنگ سیاه (یا رنگی که نام می‌برید) و بدون نشانه کشیده می‌شود؛ \addplot+[...] سبک فهرست چرخه را نگه می‌دارد و گزینه‌های شما را به آن اضافه می‌کند.

برچسب‌ها، عنوان، راهنما و شبکه

این گزینه‌ها روی axis قرار می‌گیرند، پس بر کل نمودار اثر می‌گذارند.

برچسب محورها، عنوان، راهنما و شبکه

\begin{tikzpicture}
  \begin{axis}[
      title={Cooling of a cup of tea},
      xlabel={Time (min)},
      ylabel={Temperature ($^\circ$C)},
      grid=major,
      legend pos=north east,
    ]
    \addplot coordinates {(0,80) (5,64) (10,53) (15,44) (20,38)};
    \addlegendentry{Measured}
    \addplot[red, domain=0:20, samples=40] {22 + 58*exp(-0.08*x)};
    \addlegendentry{Model}
  \end{axis}
\end{tikzpicture}
حروف‌چینی با Scissor LaTeX: برچسب محورها، عنوان، راهنما و شبکه

برچسب‌ها متن هستند، پس ریاضی مثل یک پاراگراف بین $ ... $ می‌آید. \addlegendentry پس از هر \addplot نام آن سری را تعیین می‌کند؛ همچنین می‌توانید همهٔ نام‌ها را در پایان با \legend{Measured, Model} فهرست کنید.

گزینه‌های رایج محور

گزینهکارشدر Scissor LaTeX
xlabel، ylabel، titleمتن کنار محورها و بالای نمودارکار می‌کند
xmin، xmax، ymin، ymaxثابت کردن بازهٔ قابل‌مشاهدهکار می‌کند
width، heightاندازهٔ کل تصویر، مثلاً width=\linewidthکار می‌کند
grid=major، grid=bothخط‌های شبکه روی درجه‌بندی‌های اصلی (و فرعی)کار می‌کند
xtick={0,1,2}، xticklabels={a,b,c}انتخاب درجه‌بندی‌ها و برچسب‌هایشانکار می‌کند
legend pos=north westnorth west، north east، south west، south east، outer north eastکار می‌کند
axis lines=leftیک جفت محور L شکل با پیکان به جای قابکار می‌کند (همچنین middle، center، none)
enlargelimits=falseبدون فضای اضافه دور داده‌هاکار می‌کند
axis equalمقیاس یکسان روی هر دو محورهنوز پشتیبانی نمی‌شود: با یک پیام در زبانهٔ مشکلات نادیده گرفته می‌شود

بیشتر گزینه‌های دیگر راهنمای pgfplots هم کار می‌کنند؛ صفحهٔ نمودارهای خطی سبک‌ها و نشانه‌ها را فهرست می‌کند. گزینه‌ای که رسام نمی‌شناسد نادیده گرفته می‌شود و زبانهٔ مشکلات نامش را می‌آورد.

اندازه و جای‌گذاری

به طور پیش‌فرض یک نمودار حدود 240 در 207 پوینت است، یعنی پیش‌فرض pgfplots. برای تغییر آن width و height را روی محور تنظیم کنید. برای اینکه نمودار عنوان و شماره بگیرد، tikzpicture را درون یک figure بگذارید، همان‌طور که با یک تصویر می‌کنید.

نموداری درون figure با عنوان

\begin{figure}[h]
  \centering
  \begin{tikzpicture}
    \begin{axis}[width=7cm, height=4.5cm, xlabel=$x$, ylabel=$x^2$]
      \addplot[domain=0:2, samples=30] {x^2};
    \end{axis}
  \end{tikzpicture}
  \caption{A parabola on $[0, 2]$.}
  \label{fig:parabola}
\end{figure}

Figure~\ref{fig:parabola} shows the parabola.
حروف‌چینی با Scissor LaTeX: نموداری درون figure با عنوان

\resizebox{0.5\linewidth}{!}{...} دور یک tikzpicture تنها هم کار می‌کند: تصویر به همان عرض مقیاس داده می‌شود.

تفاوت‌ها با یک نصب TeX

همهٔ آنچه در این صفحه آمده در یک نصب TeX با pgfplots هم کامپایل می‌شود. راهنمای کامل در CTAN است: ctan.org/pkg/pgfplots.

پرسش و پاسخ

آیا لازم است pgfplots را نصب کنم؟

نه. مثل همیشه \usepackage{pgfplots} بنویسید. Scissor LaTeX بسته را می‌شناسد و نمودارها را خودش در مرورگر می‌کشد.

چرا نمودار تابع من دندانه‌دار است؟

pgfplots به طور پیش‌فرض 25 نقطه را به هم وصل می‌کند. برای منحنی نرم‌تر samples=100 (یا بیشتر) را به \addplot یا محور اضافه کنید، یا smooth را اضافه کنید تا منحنی‌ای از میان نقطه‌ها کشیده شود.

می‌توانم pgfplots را بدون tikzpicture به کار ببرم؟

نه، در LaTeX محیط axis همیشه درون یک tikzpicture قرار می‌گیرد. Scissor LaTeX از همین قاعده پیروی می‌کند، پس کد شما جاهای دیگر هم کامپایل می‌شود.

هر مثال این صفحه هنگام ساخت سایت با Scissor LaTeX حروف‌چینی می‌شود. آخرین به‌روزرسانی: 2026-11-07.