مبانی 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}برچسبها متن هستند، پس ریاضی مثل یک پاراگراف بین $ ... $ میآید. \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 west | north 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.\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.