python - 如何使用 matplotlib 在 for 循环中打印多个多边形
问题描述
我想打印一些多边形(五边形)作为图像。我制作了一个 (4,5,2) 数组,它们是 4 个五边形的坐标。我希望代码在 for 循环中打印 4 个五边形。问题是我的代码在每次运行中只打印一个多边形。这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
my_dpi = 100
coord = np.array([[[-150, -200], [300, -200], [300, 0], [150, 200], [-150, 200]],
[[-110, -220], [340, -250], [280, 0], [120, 200], [-140, 210]],
[[-140, -230], [350, -260], [350, 0], [140, 200], [-180, 220]],
[[-180, -240], [370, -270], [370, 0], [170, 200], [-190, 230]]])
for i in range(4):
i = 0
geo = coord[i, :, :]
print(coord[i])
polygon = plt.Polygon(coord[i], color='w')
plt.gca().add_patch(polygon)
plt.savefig('figure/%d.jpg' % i, dpi=my_dpi)
i =+ 1
解决方案
主要问题是print
语句在for
循环之外,所以它只打印最后一组坐标。我还删除了该i=0
行,以便正确打印。下面的代码打印所有坐标。
import numpy as np
import matplotlib.pyplot as plt
my_dpi = 100
coord = np.array([[[-150, -200], [300, -200], [300, 0], [150, 200], [-150, 200]],
[[-110, -220], [340, -250], [280, 0], [120, 200], [-140, 210]],
[[-140, -230], [350, -260], [350, 0], [140, 200], [-180, 220]],
[[-180, -240], [370, -270], [370, 0], [170, 200], [-190, 230]]])
for i in range(4):
geo = coord[i, :, :]
print(coord[i])
polygon = plt.Polygon(coord[i], color='w')
plt.gca().add_patch(polygon)
plt.savefig('figure/%d.jpg' % i, dpi=my_dpi)
i =+ 1
推荐阅读
- python - 张量导入错误,keras 错误代码 -1073741795
- c# - 5 分钟后 .NET Core 3.1 API 上的 AntiForgery
- javascript - 如何在 window.open 中使用 noreferrer 功能并获得对子窗口的非空引用?
- swift - 上一个查询出错:[确保在此操作之前使用 /playback/source 设置源。(SOURCE_NOT_SET)]
- bash - 用变量定义 osascript 路径
- firebase - 未找到访问令牌受众中的 OAuth2 客户端 ID
- product - 是否可以在 SAP Hybris Commerce 中分配产品级别的销售组织?
- json - 从 Az Devops 结果中检索 Powershell 中的信息
- java - 我无法在 java swing 中将 jtable 中的数据显示到我的文本字段
- ansible - 如何在没有 shell/命令模块的情况下为“systemctl set-default graphics.target”编写 Ansible 任务