为什么对数散射轴不是从零开始?

时间:2012-09-19 13:43:04

标签: matplotlib

我在matplotlib中生成一个散点图。如果我使用线性刻度,一切都很好。

但是因为我主要对较低的值感兴趣,所以我认为我会使用对数缩放。但是,即使我将x轴限制明确设置为(0,1),轴也从0.1开始,所以我想念下面的所有内容!

为什么对数轴不是从零开始,我该如何强制它?

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,1,100)
y = np.random.randint(1000, size=100)

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x, y)

ax.set_xlim(0,1.2)
ax.set_ylim(0,1000)
ax.set_yscale('log')
ax.set_xscale('log')
ax.yaxis.set_major_formatter(plt.FormatStrFormatter('%1.0f'))
ax.xaxis.set_major_formatter(plt.FormatStrFormatter('%.1f'))
ax.xaxis.set_minor_formatter(plt.FormatStrFormatter('%.1f'))

# this red line at x = 0.1
ax.axvline(x=0.1,color='r')

plt.show()

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

通常,对数轴永远不会从零开始,因为log(0) - 轴上的x没有“好”值,因为log(0)==x仅适用于x->-infinity