matplotlib 如何设置自动偏移

m528fe3b  于 2023-05-07  发布在  其他
关注(0)|答案(3)|浏览(162)

例如,当我试图绘制点

points = [(0,0),(0,1),(1,1,),(1,0)]
for point in points:
    plt.plot(point[0], point[1], 'o')
plt.show()

它将显示

这使得这些点很难看到。我如何使xy轴变宽,使点移动到图的中心?就像

也就是说,我如何将点的offset值设置为plot的边界,这样它们就不会显示在角落里?

tpxzln5u

tpxzln5u1#

正如@Rob所说,你可以使用

plt.xlim([xmin, xmax])
plt.ylim([ymin, ymax])

同样值得注意的是,绘制所有x值与所有y值的关系图要高效得多。

points = [(0,0),(0,1),(1,1),(1,0)]
xs, ys = zip(*points)
plt.plot(xs, ys, 'o')
plt.xlim([-1, 2])
plt.ylim([-1, 2])
plt.show()

如果你想为每个点单独的颜色,你可以使用scatter

points = [(0,0),(0,1),(1,1,),(1,0)]
xs, ys = zip(*points)
colors = range(len(xs))
plt.scatter(xs, ys, c=colors)
plt.xlim([-1, 2])
plt.ylim([-1, 2])
plt.show()

编辑:另外,由于您想要绘制点,因此应该使用scatter而不是plt,因为它会自动调整限制。寓意:使用适合工作的工具。请看下面(忽略我奇怪的matplotlibrc设置):

points = [(0,0),(0,1),(1,1),(1,0)]
for point in points:
    plt.plot(point[0], point[1], 'o')
plt.show()

points = [(0,0),(0,1),(1,1),(1,0)]
plt.scatter(*zip(*points))
plt.show()

brjng4g3

brjng4g32#

使用xlim和ylim

points = [(0,0),(0,1),(1,1,),(1,0)]

for point in points:
    plt.plot(point[0], point[1], 'o')

automin, automax = plt.xlim()
plt.xlim(automin-0.5, automax+0.5)
automin, automax = plt.ylim()
plt.ylim(automin-0.5, automax+0.5)

plt.show()

如果在绘制数据之前确实需要设置限制,可以先关闭自动缩放,然后使用xlimylim设置限制

unftdfkk

unftdfkk3#

您需要使用ylim和xlim参数。例如

plt.ylim(-1,5)
plt.xlim(-1,5)
plt.show()

相关问题