我系统上的以下最小工作示例(Python 3.5.3,matplotlib 2.0.2)导致代码片段后面的图像:
import matplotlib.ticker
from matplotlib import pyplot as plt
npts = [2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0]
error = [0.0005650356236921, 1.9222448391e-06, 1.05166913e-08,
6.92182e-11, 5.029e-13, 3.8e-15, 4e-16, 2e-16]
fig1, ax1 = plt.subplots()
ax1.plot(npts, error , 'ro')
ax1.set_xscale('log')
ax1.set_yscale('log')
ax1.set_xticks(npts)
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()
请注意,标签3 x 10 ^ 0根本不应该存在。此外,2和4个标签已被不需要的2 x 10 ^ 0和4 x 10 ^ 0标签重叠。
如果我通过放弃
制作情节" semilogy"这不会发生ax1.set_xscale('log')
例如,
为什么会发生这种情况以及如何解决?
答案 0 :(得分:0)
您不需要此行ax1.set_xscale('log')
。原因是数据点不是对数的。