محورهای لگاریتمی با pgfplots
به جای axis از semilogyaxis (y لگاریتمی)، semilogxaxis (x لگاریتمی) یا loglogaxis (هر دو) استفاده کنید، یا روی یک axis معمولی ymode=log یا xmode=log را تنظیم کنید.
مقیاس لگاریتمی روی محور y
مقدارهایی که با ضریب رشد میکنند، مثل شمارشها، خطاها یا بسامدها، روی مقیاس لگاریتمی بهتر خوانده میشوند. semilogyaxis محور x را خطی نگه میدارد و y را لگاریتمی میکند. درجهها روی توانهای ده قرار میگیرند و به صورت $10^k$ برچسب میخورند.
رشد نمایی روی محور y لگاریتمی
\begin{tikzpicture}
\begin{semilogyaxis}[xlabel={Day}, ylabel={Cells}, grid=major]
\addplot coordinates {(0,44) (1,120) (2,350) (3,980) (4,2700) (5,7600) (6,21000)};
\end{semilogyaxis}
\end{tikzpicture}یک خط راست در این نمودار یعنی رشدی ثابت با ضریبی یکسان در هر گام.
هر دو محور لگاریتمی
loglogaxis هر دو محور را لگاریتمی میکند. قانون توانیای مثل $y = x^2$ به خطی راست تبدیل میشود که شیبش همان نما است.
قانونهای توانی در نمودار log-log
\begin{tikzpicture}
\begin{loglogaxis}[xlabel=$n$, ylabel={Time (s)}, legend pos=north west]
\addplot coordinates {(10,0.001) (100,0.01) (1000,0.1) (10000,1)};
\addplot coordinates {(10,0.0001) (100,0.01) (1000,1) (10000,100)};
\legend{$O(n)$, $O(n^2)$}
\end{loglogaxis}
\end{tikzpicture}همین کار با xmode و ymode
xmode=log و ymode=log به یک axis معمولی مقیاس لگاریتمی میدهند. این وقتی به کار میآید که انتخاب را یک سبک انجام میدهد، یا درون یک نمودار گروهی.
xmode=log روی یک محور معمولی
\begin{tikzpicture}
\begin{axis}[xmode=log, xlabel={Frequency (Hz)}, ylabel={Gain (dB)}, ymin=-30, ymax=5]
\addplot[blue, thick, domain=1:5, samples=60, variable=t]
({10^t}, {-10*log10(1 + (10^t/1000)^2)});
\end{axis}
\end{tikzpicture}فرمولها روی محورهای لگاریتمی هم کار میکنند، اما domain و samples بر حسب واحدهای دادهاند: نمونهها به طور یکنواخت بین دو سر پخش میشوند، پس روی محور لگاریتمی تقریباً همهٔ آنها در دههٔ آخر میافتند. به همین دلیل مثال یک منحنی پارامتری بر حسب نمای t از $10^1$ تا $10^5$ رسم میکند که نمونهها را به طور یکنواخت در طول محور لگاریتمی پخش میکند. pgfplots هم همینطور رفتار میکند.
پایهای دیگر
log basis y=2 (یا log basis x) پایه را تغییر میدهد. آنگاه درجهها روی توانهای 2 قرار میگیرند و به صورت $2^k$ برچسب میخورند.
پایهٔ 2 روی محور y
\begin{tikzpicture}
\begin{semilogyaxis}[log basis y=2, xlabel={Doublings}, ymin=1, ymax=64]
\addplot coordinates {(0,1) (1,2) (2,4) (3,8) (4,16) (5,32)};
\end{semilogyaxis}
\end{tikzpicture}گزینهها روی محورهای لگاریتمی
| گزینه | در Scissor LaTeX | توضیح |
|---|---|---|
semilogxaxis، semilogyaxis، loglogaxis | کار میکند | |
xmode=log، ymode=log | کار میکند | |
log basis x=b، log basis y=b | کار میکند | |
ymin، ymax روی محور لگاریتمی | کار میکند | مقدارهای مثبت بدهید. |
log ticks with fixed point | پشتیبانی نمیشود | با یک پیام نادیده گرفته میشود؛ برچسبها به صورت توان میمانند. |
ybar stacked روی محور لگاریتمی | پشتیبانی نمیشود | میلهها روی هم کشیده میشوند، نه انباشته، و هیچ پیامی نشان داده نمیشود. |
| مقدارهای 0 یا کمتر | کنار گذاشته میشوند | نقطههایی که روی مقیاس لگاریتمی قابل نمایش نیستند، با یک پیام، کنار گذاشته میشوند. |
تفاوتها با یک نصب TeX
برای میلهها روی محورهای خطی نمودارهای میلهای را ببینید و برای همهٔ گزینهها راهنمای pgfplots را: ctan.org/pkg/pgfplots.
همچنین ببینید: نمودارهای خطی، نمودارهای گروهی و منحنیهای تراز و نقشههای حرارتی.
پرسش و پاسخ
چطور در pgfplots محور y را لگاریتمی کنم؟
به جای axis از \begin{semilogyaxis} ... \end{semilogyaxis} استفاده کنید، یا ymode=log را به گزینههای محور اضافه کنید.
چرا نمودار لگاریتمی من هیچ دادهای نشان نمیدهد؟
محور لگاریتمی نمیتواند مقدارهای صفر یا منفی را نشان دهد. نقطههایی با چنین مقدارهایی کنار گذاشته میشوند و زبانهٔ مشکلات این را میگوید. دادهها را جابهجا کنید یا از محور خطی استفاده کنید.
میتوانم از پایهٔ 2 یا پایهٔ e استفاده کنم؟
بله، با log basis y=2 (یا هر عدد مثبتی، مثلاً log basis x=2.71828).
هر مثال این صفحه هنگام ساخت سایت با Scissor LaTeX حروفچینی میشود. آخرین بهروزرسانی: 2026-11-07.