نمودارهای خطی با pgfplots
برای هر خط یک \addplot درون axis اضافه کنید؛ به هر کدام با گزینههایی مثل red، dashed، thick یا mark=square* سبک بدهید، یا بگذارید فهرست چرخه سبکی برایتان انتخاب کند.
چند خط در یک محور
هر \addplot یک سری اضافه میکند. بدون گزینه، سریها به ترتیب سبکشان را از فهرست چرخه میگیرند. با \addplot+[...] آن سبک را نگه میدارید و یک بخش از آن را تغییر میدهید.
سه سری از فهرست چرخهٔ پیشفرض
\begin{tikzpicture}
\begin{axis}[xlabel=Week, ylabel=Orders, legend pos=north west]
\addplot coordinates {(1,12) (2,18) (3,25) (4,31) (5,44)};
\addplot coordinates {(1,10) (2,14) (3,15) (4,21) (5,24)};
\addplot+[dashed] coordinates {(1,5) (2,9) (3,8) (4,12) (5,13)};
\legend{Erika, Hans, John}
\end{axis}
\end{tikzpicture}سبک خط و نشانهها
گزینههای پس از \addplot رنگ، خط و نشانهها را تعیین میکنند. میتوانید آزادانه آنها را با هم ترکیب کنید.
| گزینه | مقدارها | در Scissor LaTeX |
|---|---|---|
| رنگ | red، blue!60!black، color=teal، هر نام یا ترکیب رنگ xcolor | کار میکند |
| ضخامت خط | ultra thin، very thin، thin، semithick، thick، very thick، ultra thick، line width=1.5pt | کار میکند |
| الگوی خطچین | solid، dashed، dotted، densely dashed، loosely dotted، dashdotted، dash pattern=on 4pt off 2pt | کار میکند |
mark= | *، o، square*، square، triangle*، triangle، diamond*، diamond، x، +، star، pentagon*، asterisk، otimes*، |، -، none | کار میکند |
mark size=3pt | شعاع نشانه | کار میکند |
mark options={fill=white} | سبک فقط برای نشانهها | کار میکند |
mark repeat=2 | یک نشانه روی هر نقطهٔ دوم | کار میکند |
no marks، only marks | فقط خط، فقط نشانه | کار میکند |
رنگها، الگوهای خطچین و نشانهها
\begin{tikzpicture}
\begin{axis}[domain=0:4, samples=9, legend pos=outer north east]
\addplot[blue, thick, mark=*] {x};
\addplot[red, dashed, mark=square*, mark options={fill=white}] {x^1.5/2};
\addplot[teal, densely dotted, very thick] {sqrt(x)};
\addplot[orange, mark=triangle*, mark size=3pt, only marks] {4 - x};
\legend{linear, power, root, falling}
\end{axis}
\end{tikzpicture}نشانهها همیشه با خط پیوسته کشیده میشوند، حتی روی یک سری خطچین، همانطور که در pgfplots.
انتخاب فهرست چرخه
فهرست چرخه دنبالهای از سبکهاست که فرمانهای سادهٔ \addplot به کار میبرند. یکی از فهرستهای داخلی را با cycle list name انتخاب کنید، یا فهرست خودتان را با cycle list بنویسید.
فهرست چرخهٔ black white و یک فهرست سفارشی
\begin{tikzpicture}
\begin{axis}[cycle list name=black white, width=6.5cm, height=5cm, title={black white}]
\addplot coordinates {(0,0) (1,1) (2,4)};
\addplot coordinates {(0,1) (1,2) (2,2)};
\addplot coordinates {(0,2) (1,0) (2,1)};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[cycle list={{red, thick}, {blue, dashed}}, width=6.5cm, height=5cm, title={custom}]
\addplot coordinates {(0,0) (1,1) (2,4)};
\addplot coordinates {(0,1) (1,2) (2,2)};
\end{axis}
\end{tikzpicture}نامهای داخلی که کار میکنند: color (پیشفرض)، exotic، black white، mark list و linestyles. \pgfplotscreateplotcyclelist{name}{...} در پیشدرآمد فهرستی تعریف میکند که میتوانید دوباره به کار ببرید.
منحنیهای نرم و پلهها
smooth به جای پارهخطهای راست، منحنیای از میان نقطهها میکشد؛ tension (پیشفرض 0.55) میزان گردی آن را تنظیم میکند. const plot یک تابع پلهای میکشد که هر مقدار را تا نقطهٔ بعدی نگه میدارد.
smooth و const plot
\begin{tikzpicture}
\begin{axis}[ymin=0, legend pos=north west]
\addplot+[smooth] coordinates {(0,1) (1,2.5) (2,1.8) (3,3.2) (4,2.4)};
\addplot+[const plot] coordinates {(0,0.5) (1,1) (2,1.5) (3,1.2) (4,2)};
\legend{smooth, const plot}
\end{axis}
\end{tikzpicture}تابعها بر حسب درجه و رادیان
فرمولها از pgfmath استفاده میکنند: + - * / ^، پرانتز، sqrt، exp، ln، abs، min، max، sin، cos، tan و بیشتر، با pi و e به عنوان ثابت. زاویهها بر حسب درجهاند، پس رادیان را با deg(x) تبدیل کنید.
sin و cos در یک دوره
\begin{tikzpicture}
\begin{axis}[domain=0:2*pi, samples=80, xlabel=$t$,
xtick={0,1.5708,3.1416,4.7124,6.2832},
xticklabels={$0$,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,$2\pi$},
legend pos=south west]
\addplot[blue, thick] {sin(deg(x))};
\addplot[red, thick, dashed] {cos(deg(x))};
\legend{$\sin t$, $\cos t$}
\end{axis}
\end{tikzpicture}منحنیهای پارامتری
برای رسم منحنیای که با x(t) و y(t) داده شده، هر دو فرمول را درون پرانتز و جدا شده با ویرگول بنویسید و variable=t را تنظیم کنید.
یک منحنی لیساژو
\begin{tikzpicture}
\begin{axis}[axis lines=middle, xmin=-1.3, xmax=1.3, ymin=-1.3, ymax=1.3]
\addplot[purple, thick, domain=0:360, samples=120, variable=t]
({cos(t)}, {sin(2*t)});
\end{axis}
\end{tikzpicture}گسستگی در یک منحنی
تابعی مثل 1/x به سمت بینهایت میرود. restrict y to domain نقطههای بیرون از یک بازه را کنار میگذارد و unbounded coords=jump خط را همانجا میشکند، به جای اینکه دو شاخه را به هم وصل کند. هر دو را روی \addplot بگذارید.
1/x با شکستگی در صفر
\begin{tikzpicture}
\begin{axis}[ymin=-10, ymax=10, axis lines=middle]
\addplot[blue, thick, domain=-3:3, samples=200,
restrict y to domain=-10:10, unbounded coords=jump] {1/x};
\end{axis}
\end{tikzpicture}تفاوتها با یک نصب TeX
راهنمای pgfplots در CTAN همهٔ گزینهها را توضیح میدهد: ctan.org/pkg/pgfplots. برای نقطههای بدون خط، نمودارهای پراکندگی را ببینید.
همچنین ببینید: مبانی pgfplots، محورهای لگاریتمی، نمودارهای گروهی و داده از CSV.
پرسش و پاسخ
چطور در LaTeX یک تابع رسم کنم؟
درون یک axis بنویسید \addplot[domain=a:b, samples=n] {formula}; و x را به عنوان متغیر به کار ببرید، مثلاً {x^2 - 1}.
چطور نشانهها را از یک خط بردارم؟
no marks را به گزینههای \addplot اضافه کنید، یا گزینهها را بدون + بدهید (مثلاً \addplot[blue]) که یک خط ساده میکشد.
چرا sin(x) تقریباً صاف به نظر میرسد؟
pgfplots زاویه را بر حسب درجه میخواند، پس sin(x) روی 0 تا 6 فقط 6 درجه را پوشش میدهد. sin(deg(x)) بنویسید.
هر مثال این صفحه هنگام ساخت سایت با Scissor LaTeX حروفچینی میشود. آخرین بهروزرسانی: 2026-11-07.