我正在用类似于以下的方法创建一个图:
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设置的x
和y
限制足够大,可以包括绘制的所有数据。
因此,通过此更改,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()
之前。