matplotlib - lim 在函数 plt.axis(lim) 中的作用是什么?
问题描述
在我的教科书中,我有以下代码:
model = grid.best_estimator_
plt.scatter(X.ravel(), y)
lim = plt.axis()
y_test = model.fit(X, y).predict(X_test)
plt.plot(X_test.ravel(), y_test, hold=True);
plt.axis(lim);
我了解到 plt.axis() 用于设置轴限制。但是这是什么意思,当我们使用这个没有参数的方法时,将值赋给lim,然后在plt.axis()中再次使用lim作为参数?
我不明白。
解决方案
没有参数,plt.axis()
返回绘图的 x 和 y 方向的当前限制。
在这段代码中,这些限制被保存到一个变量中。因此,这些是散点图看起来不错的限制。
然后,plt.plot
调用在散点图顶部绘制特定曲线。由于这条曲线也在散点图区域之外绘制,matplotlib 会自动调整其限制以适应完整的曲线。但是这种调整会使散点图缩小到一些小区域。
为了纠正这种情况,散点图看起来很好的限制再次强制在图上,使用plt.axis(lim)
.
这是一个视觉插图: