python matplotlib.pyplot log-log绘图点未显示,因为python选择的y范围很差

Mat*_*hew 3 python matplotlib

在以下生成对数图的代码中,python 选择了一个不显示散点图上的点的 x 范围

import matplotlib.pyplot as plt

plt.scatter([.005,.005],[1,2])
plt.xscale('log')
plt.yscale('log')
plt.show()
Run Code Online (Sandbox Code Playgroud)

此外,如果您改为使用以下代码,它可以正常工作:

import matplotlib.pyplot as plt

plt.plot([.005,.005],[1,2])
plt.xscale('log')
plt.yscale('log')
plt.show()
Run Code Online (Sandbox Code Playgroud)

通常 python 会为 x 和 y 值选择一个合适的范围。为什么在这种情况下不呢?

请注意,我知道可以更改 x 和 y 范围,以便不使用默认值。我的问题是专门问为什么在这种情况下 python 没有选择一个好的范围。

谢谢

我似乎这是为什么 matplotlib 需要在 plt.scatter() 之前设置对数刻度而不是 plt.plot() 的副本?

对于阅读本文的任何人,请告诉我是否应该删除此问题,或者您是否会推荐其他内容。谢谢

Imp*_*est 5

从各种线索(这个问题这个问题这个问题这个问题)来看,我们可以得出结论,这是一个需要解决的问题。...但前提是您需要在绘图设置比例。

如果您绘图之前设置比例,那不是问题:

import matplotlib.pyplot as plt

plt.xscale('log')
plt.yscale('log')
plt.scatter([.005,.005],[1,2])

plt.show()
Run Code Online (Sandbox Code Playgroud)