Python & Matplot: 怎么画简单的图形?

我想要根据给出的点来画出图形,比如

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

hexagon = [(0,0),(0,1),(1,2),(2,1),(2,0),(1,-1)]

l_shape = [(0,0),(0,3),(1,3),(1,1),(3,1),(3,0)]

concave = [(0,0),(0,3),(1,3),(1,1),(2,1),(2,3),(3,3),(3,0)]

for points in [rectangle, hexagon, l_shape, concave]:

xs, ys = zip(*points)

plt.plot(xs, ys, 'o')

plt.plot(xs, ys, '-')

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()

图片描述

有几个问题

  1. 怎么可以把*zip去掉?就是直接根据给出的点来画,而不需要拆成2组x,y坐标
  2. 怎么把图形画完整?(因为是从第1个点坐标循环到最后1个点,上面这些都是缺了最后1条线的)
  3. points当中的点可不可以没有顺序?有了点就直接画出这些图形。(比如采用convex hull?但是这里有些凹凸型的似乎不能直接用)

以上是 Python & Matplot: 怎么画简单的图形? 的全部内容, 来源链接: utcz.com/a/165023.html

回到顶部