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
\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
\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}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
\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}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
\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
| Pilihan | Dalam Scissor LaTeX | Catatan |
|---|---|---|
semilogxaxis, semilogyaxis, loglogaxis | Berfungsi | |
xmode=log, ymode=log | Berfungsi | |
log basis x=b, log basis y=b | Berfungsi | |
ymin, ymax pada paksi log | Berfungsi | Berikan nilai positif. |
log ticks with fixed point | Tidak disokong | Diabaikan dengan mesej; label kekal sebagai kuasa. |
ybar stacked pada paksi log | Tidak disokong | Bar dilukis bertindih, bukan bertindan, dan tiada mesej ditunjukkan. |
| nilai 0 atau kurang | Dibuang | Titik 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.