例如,当我尝试绘制点
时points = [(0,0),(0,1),(1,1,),(1,0)]
for point in points:
plt.plot(point[0], point[1], 'o')
plt.show()
将显示
这使得难以看清。如何使x
,y
轴更宽,以便点移动到绘图的中心?像
也就是说,如何将点的offset
值设置为plot
的bounderies,这样他们就不会在角落处被置换?
答案 0 :(得分:3)
正如@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()
答案 1 :(得分:2)
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()
如果您在绘制数据之前确实需要设置限制,可以关闭autoscaling first,然后使用xlim
和ylim
设置限制
答案 2 :(得分:0)
您需要使用ylim和xlim参数。 e.g。
plt.ylim(-1,5)
plt.xlim(-1,5)
plt.show()