Pyplot - 自动将x轴范围设置为传递给绘图功能的min,max x值

时间:2013-07-28 11:59:28

标签: python matplotlib

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

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变量中的最低值(加上一点余地),并让它为上限做同样的事情,使用传递给情节的最高x值(加上一点余地)?谢谢。

1 个答案:

答案 0 :(得分:15)

令人困惑的是,您的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-coordinatesx_list_of_lists中指定。


但是,如果您想调整x限制,可以使用plt.xlim function

因此,要将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)

确保在<{1}}之前之后将此放置在plt.plot之前(当然)plt.show()之前。