例如,当我试图绘制点
points = [(0,0),(0,1),(1,1,),(1,0)] for point in points: plt.plot(point[0], point[1], 'o') plt.show()
它将显示
这使得这些点很难看到。我如何使x,y轴变宽,使点移动到图的中心?就像
x
y
也就是说,我如何将点的offset值设置为plot的边界,这样它们就不会显示在角落里?
offset
plot
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:
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设置):
plt
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()
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()
如果在绘制数据之前确实需要设置限制,可以先关闭自动缩放,然后使用xlim和ylim设置限制
xlim
ylim
unftdfkk3#
您需要使用ylim和xlim参数。例如
plt.ylim(-1,5) plt.xlim(-1,5) plt.show()
3条答案
按热度按时间tpxzln5u1#
正如@Rob所说,你可以使用
同样值得注意的是,绘制所有x值与所有y值的关系图要高效得多。
如果你想为每个点单独的颜色,你可以使用
scatter
:编辑:另外,由于您想要绘制点,因此应该使用
scatter
而不是plt
,因为它会自动调整限制。寓意:使用适合工作的工具。请看下面(忽略我奇怪的matplotlibrc设置):brjng4g32#
使用xlim和ylim
如果在绘制数据之前确实需要设置限制,可以先关闭自动缩放,然后使用
xlim
和ylim
设置限制unftdfkk3#
您需要使用ylim和xlim参数。例如