Langkau ke kandungan

Paksi logaritma dengan pgfplots

Gantikan axis dengan semilogyaxis (log y), semilogxaxis (log x) atau loglogaxis (kedua-duanya), atau tetapkan ymode=log atau xmode=log pada axis biasa.

Skala log pada paksi y

Nilai yang bertambah mengikut gandaan, seperti kiraan, ralat atau frekuensi, paling mudah dibaca pada skala log. semilogyaxis mengekalkan x linear dan menjadikan y logaritma. Tanda terletak pada kuasa sepuluh dan dilabel sebagai $10^k$.

Pertumbuhan eksponen pada paksi y log

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}

Garis lurus pada plot ini bermaksud pertumbuhan tetap dengan gandaan yang sama bagi setiap langkah.

Kedua-dua paksi logaritma

loglogaxis menjadikan kedua-dua paksi logaritma. Hukum kuasa seperti $y = x^2$ menjadi garis lurus yang kecerunannya ialah eksponen.

Hukum kuasa pada plot log-log

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}
Disusun atur oleh Scissor LaTeX: Hukum kuasa pada plot log-log

Perkara yang sama dengan xmode dan ymode

xmode=log dan ymode=log memberikan axis biasa skala log. Ini berguna apabila pilihan dibuat oleh gaya, atau di dalam plot berkumpulan.

xmode=log pada paksi biasa

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}
Disusun atur oleh Scissor LaTeX: xmode=log pada paksi biasa

Formula juga berfungsi pada paksi log, tetapi domain dan samples dalam unit data: sampel disebarkan secara sekata antara kedua-dua hujung, jadi pada paksi log hampir semuanya jatuh dalam dekad terakhir. Oleh itu contoh ini memplot lengkung parametrik dalam eksponen t, dari $10^1$ hingga $10^5$, yang menyebarkan sampel secara sekata di sepanjang paksi log. pgfplots berkelakuan dengan cara yang sama.

Asas lain

log basis y=2 (atau log basis x) menukar asas. Tanda kemudian terletak pada kuasa 2 dan dilabel $2^k$.

Asas 2 pada paksi y

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}

Pilihan pada paksi log

PilihanDalam Scissor LaTeXCatatan
semilogxaxis, semilogyaxis, loglogaxisBerfungsi
xmode=log, ymode=logBerfungsi
log basis x=b, log basis y=bBerfungsi
ymin, ymax pada paksi logBerfungsiBerikan nilai positif.
log ticks with fixed pointTidak disokongDiabaikan dengan mesej; label kekal sebagai kuasa.
ybar stacked pada paksi logTidak disokongBar dilukis bertindih, bukan bertindan, dan tiada mesej ditunjukkan.
nilai 0 atau kurangDibuangTitik yang tidak dapat ditunjukkan pada skala log ditinggalkan, dengan satu mesej.

Perbezaan dengan pemasangan TeX

Lihat carta bar untuk bar pada paksi linear dan manual pgfplots untuk setiap pilihan: ctan.org/pkg/pgfplots.

Lihat juga Plot garis, Plot berkumpulan dan Kontur dan peta haba.

Soalan dan jawapan

Bagaimanakah cara menjadikan paksi y logaritma dalam pgfplots?

Gunakan \begin{semilogyaxis} ... \end{semilogyaxis} dan bukannya axis, atau tambah ymode=log pada pilihan paksi.

Mengapakah plot log saya tidak menunjukkan data?

Paksi log tidak dapat menunjukkan nilai sifar atau negatif. Titik dengan nilai sedemikian dibuang, dan tab Masalah menyatakannya. Anjakkan data atau gunakan paksi linear.

Bolehkah saya menggunakan asas 2 atau asas e?

Ya, dengan log basis y=2 (atau sebarang nombor positif, contohnya log basis x=2.71828).

Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.