رفتن به محتوا

محورهای لگاریتمی با 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}
حروف‌چینی با Scissor LaTeX: قانون‌های توانی در نمودار log-log

همین کار با 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}
حروف‌چینی با Scissor LaTeX: xmode=log روی یک محور معمولی

فرمول‌ها روی محورهای لگاریتمی هم کار می‌کنند، اما 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.