素材牛VIP会员
Python & Matplot: 怎么画简单的图形?
 那***哦  分类:Python  人气:1237  回帖:1  发布于6年前 收藏

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

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?但是这里有些凹凸型的似乎不能直接用)
 标签:matplotlibpython

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv6 码匠
街***铃 JS工程师 6年前#1
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取