我正在创建一个类似于以下方法的图:
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值(加上一点余地)?谢谢。
答案 0 :(得分:15)
令人困惑的是,您的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-coordinates
在x_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()
之前。