我正在使用matplotlib绘制散点图。这是一个有点特殊的问题。这是没有轴刻度的数据图
plt.scatter(x, y , marker ='x')
#plt.xscale('log')
#plt.yscale('log')
plt.show()
数据曲线图的轴缩放为“对数”刻度。
为什么会这样?即使基数更改为2
或e
答案 0 :(得分:1)
在这种特殊情况下,您无法在绘图后缩放轴。您可以事先缩放它们,所以:
plt.xscale('log')
plt.yscale('log')
plt.scatter(x, y , marker ='x')
plt.show()
在这种特殊情况下(相同的标记),您也可以使用plt.plot
代替plt.scatter
,然后缩放后绘图将起作用:
plt.plot(x, y, 'x')
plt.xscale('log')
plt.yscale('log')
plt.show()
我猜测为什么你不能缩放后散点图:散点图返回一个PathCollection,这可能导致缩放函数只查看该集合的最后一个条目,即最后一个点。那当然只能在1e5 - 1e6范围内扩展。 plot()返回Line2D
,将完整的情节考虑在内。
答案 1 :(得分:0)
日志缩放应该合理地剪切值,因此数据中的0
不是问题。
我怀疑问题在于您的限制具有负值,因此天真地记录限制并使用这些导致问题。
您还可以明确设置限制
ax = plt.gca()
ax.set_xlim([1e-5, 1e6])
ax.set_ylim([1e-5, 1e6])
并且不依赖于自动缩放。