【发布时间】:2018-09-18 16:15:42
【问题描述】:
我想为我的商店创建一个简单的地图,显示所有不同结帐的大小。我有 3 种不同的直到类型。一个是 4 号,另外 2 个是 1 号。
例如
Till1 - 4
Till2 - 1
Till3 - 1
我已经按照以下方式创建了一个表:
直到大小多边形
Till1 4 [[0,1],[0,5],[1,5],[1,1]]
Till2 1 [[1,1],[1,2],[2,2],[2,1]]
ETC
运行此代码:
df1.iloc[0]['polygon']
我得到'[[0,1],[0,5],[1,5],[1,1]]'
但是,当我尝试将其制成多边形时,它会遇到困难:
Polygon(df1.iloc[0]['polygon'], True)
TypeError: len() of unsized object
我认为它将它作为字符串读取,我需要以某种方式传递各个部分。我尝试过使用 split 但它仍然是字符串列表而不是列表列表。
有什么想法吗?
最终的代码类似于:
fig, ax = plt.subplots()
patches = []
num_polygons = len(df1)
for i in range(num_polygons):
#polygon = Polygon([[1,1],[1,5],[2,5],[2,1]], True)
polygon = Polygon(df1.iloc[0]['polygon'], True)
patches.append(polygon)
p = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4)
colors = 100*np.random.rand(len(patches))
p.set_array(np.array(colors))
ax.add_collection(p)
plt.ylim([0,10])
plt.xlim([0,10])
plt.show()
【问题讨论】:
-
如果你自己创建了这个 html 表,你可以简单地创建一个坐标列表吗?
-
看起来您需要展平点数组,即从
[[1,1],[1,5],[2,5],[2,1]]到[1,1,1,5,2,5,2,1]
标签: python matplotlib polygon