首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过获取正确格式的Google数据,使用matplotlib同时显示多个多边形

通过获取正确格式的Google数据,使用matplotlib同时显示多个多边形
EN

Stack Overflow用户
提问于 2020-06-24 18:01:45
回答 1查看 30关注 0票数 0

我的目标是同时显示多个多边形(这是我从获得的数据)。

我有一个以这种格式列出的坐标:

代码语言:javascript
复制
lst_coord = [['(742,335),(840,334),(840,351),(742,352)'], ['(304,1416),(502,1415),(502,1448),(304,1449)']

知道这些是字符串:

代码语言:javascript
复制
(742,548),(814,549),(814,563),(742,562)
<class 'str'>
代码语言:javascript
复制
import matplotlib.pyplot as plt

def plotpoly(coord,x,y):

    coord.append(coord[0])
    x, y = zip(*coord) 
    plt.plot(x,y)

for coord in lst_coord:
    plotpoly(coord,x,y)

plt.show() 

我得到了一个错误:

代码语言:javascript
复制
AttributeError: 'str' object has no attribute 'append'

我尝试过很多不同的东西。但我不能让它起作用..。

奖励:我的最终目标是在图片上显示这些多边形,而我也在与此斗争.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 18:29:12

您可以使用Polygon修补程序,它们将自动关闭:

代码语言:javascript
复制
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection

lst_coord = [['(742,335),(840,334),(840,351),(742,352)'], ['(304,1416),(502,1415),(502,1448),(304,1449)']]
patches = []
for coord in lst_coord:
    patches.append(Polygon(eval(coord[0])))
    
fig, ax = plt.subplots()
ax.add_collection(PatchCollection(patches, fc='none', ec='red'))
ax.set_xlim(0,1000)
ax.set_ylim(0,1500)
plt.show()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62561329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档