我正在尝试在现有轴上绘制,而不扩展或修改它的限制。
例如:
import numpy as np
import matplotlib.pyplot as plt
xy = np.random.randn(100, 2)
plt.scatter(xy[:,0], xy[:,1])
绘制具有良好拟合轴限制的精细绘图。
然而,当我试图在上面画一条线时:
xlim = plt.gca().get_xlim()
plt.plot(xlim, xlim, 'k--')
轴限制被扩展,大概是为了在新数据周围创建填充。
我怎么画一条线没有这个填充?
4条答案
按热度按时间pgvzfuti1#
设置
plt.autoscale(False)
可防止发生自动缩放。inn6fuwd2#
一种强力解决方案是在绘图之前跟踪轴的限制,并在绘图之后重置它们。
就像这样:
现在比较
与
x0fgdtte3#
可以使用Axes对象的
autoscale
属性:根据文件:
根据数据自动缩放轴视图(切换)。
简单的轴视图自动缩放的方便方法。它打开或关闭自动缩放,然后,如果其中一个轴的自动缩放处于打开状态,它将在指定的一个或多个轴上执行自动缩放。参数:
0pizxfdo4#
如果单独设置x轴限制,则无论打印什么,在更改它们之前,它们都不会被覆盖。要使其与您的代码配合,请尝试:
当你得到xlim时,它得到当前的限制,但是一旦你“设置”它们,它们就被锁定,直到你再次更改它们。这也适用于y轴,如果你想把它们也固定下来(只要把'x'换成'y'并添加代码)。