Pyplot-自动将x轴范围设置为传递给绘图函数的最小、最大x值



我正在用类似于以下的方法创建一个图:

import pyplot as plt
for x_list in x_list_of_lists:
   plt.plot(y_list, x_list)
plt.show()

x轴的范围似乎被设置为传递到plt.plot()的第一个x值列表的范围。有没有办法让pyplot自动将x轴的下限设置为传递给它的所有x_list变量中的最低值(加上一点回旋余地),并让它对上限做同样的操作,使用传递给plot的最高x值(加一点回旋空间)?非常感谢。

令人困惑的是,您的y_list包含沿x-axis绘制的值。如果您希望matplotlib使用x_list中的值作为x-coordinates,那么您应该调用

plt.plot(x_list, y_list)

也许这就是你问题的根源。默认情况下,matplotlib设置的xy限制足够大,可以包括绘制的所有数据。

因此,通过此更改,matplotlib现在将使用x_list作为x-coordinates,并将自动将x-axis的限制设置为足够宽,以显示x_list_of_lists中指定的所有x-coordinates


但是,如果您希望调整x限制,可以使用plt.xlim函数。

因此,要将x-axis的下限设置为所有x_list变量中的最低值(与上限类似),您需要执行以下操作:

xmin = min([min(x_list) for x_list in x_list_of_lists])-delta
xmax = max([max(x_list) for x_list in x_list_of_lists])+delta
plt.xlim(xmin, xmax)

请确保将此放在对plt.plot的所有调用之后,(当然)放在plt.show()之前。

最新更新