ในที่สุดฉันก็พบว่ามีเวลาทำการทดลองบางอย่างเพื่อที่จะเข้าใจความแตกต่างระหว่างพวกเขา นี่คือสิ่งที่ฉันค้นพบ:
log
อนุญาตเฉพาะค่าบวกและให้คุณเลือกวิธีจัดการกับค่าลบ ( mask
หรือclip
)
symlog
หมายถึงบันทึกสมมาตรและอนุญาตให้มีค่าบวกและลบ
symlog
อนุญาตให้กำหนดช่วงรอบศูนย์ภายในพล็อตจะเป็นเชิงเส้นแทนลอการิทึม
ฉันคิดว่าทุกอย่างจะเข้าใจง่ายขึ้นด้วยกราฟิกและตัวอย่างดังนั้นลองดูสิ:
import numpy
from matplotlib import pyplot
pyplot.ion()
pyplot.grid(True)
xdomain = numpy.arange(-50,50, 0.1)
pyplot.plot(xdomain, xdomain)
pyplot.plot(xdomain, numpy.sin(xdomain))
pyplot.xscale('linear')
pyplot.xscale('log')
pyplot.xscale('log', nonposx='mask')
pyplot.xscale('log', nonposx='clip')
pyplot.xscale('symlog')
pyplot.xscale('symlog', linthreshx=20)
เพื่อความสมบูรณ์ฉันใช้รหัสต่อไปนี้เพื่อบันทึกแต่ละรูป:
pyplot.savefig('matplotlib_xscale_linear.png', dpi=50, bbox_inches='tight')
จำไว้ว่าคุณสามารถเปลี่ยนขนาดรูปได้โดยใช้:
fig = pyplot.gcf()
fig.set_size_inches([4., 3.])
(หากคุณไม่แน่ใจว่าฉันจะตอบคำถามของตัวเองโปรดอ่านสิ่งนี้ )