แกนลอการิทึมด้วย pgfplots
เปลี่ยน axis เป็น semilogyaxis (y แบบลอการิทึม), semilogxaxis (x แบบลอการิทึม) หรือ loglogaxis (ทั้งสองแกน) หรือตั้งค่า ymode=log หรือ xmode=log ที่ axis ปกติ
มาตราส่วนลอการิทึมบนแกน 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
ดูเพิ่มเติม กราฟเส้น, กราฟแบบกลุ่ม และ เส้นชั้นความสูงและแผนที่ความร้อน
คำถามและคำตอบ
จะทำให้แกน y เป็นลอการิทึมใน pgfplots ได้อย่างไร
ใช้ \begin{semilogyaxis} ... \end{semilogyaxis} แทน axis หรือเพิ่ม ymode=log ในตัวเลือกของแกน
ทำไมกราฟลอการิทึมของฉันไม่แสดงข้อมูล
แกนลอการิทึมแสดงค่าศูนย์หรือค่าลบไม่ได้ จุดที่มีค่าเช่นนั้นจะถูกตัดออก และแท็บ Problems จะแจ้งไว้ ให้เลื่อนข้อมูลหรือใช้แกนเชิงเส้น
ใช้ฐาน 2 หรือฐาน e ได้ไหม
ได้ ด้วย log basis y=2 (หรือจำนวนบวกใดก็ได้ เช่น log basis x=2.71828)
ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07