如何在Python中绘制以元组表示的线列表?

用户名

假设我有一个Python函数,该函数从名为的方法返回检测到的行marching_square()

说,我有以下数据集。我想使用MatPlotLib绘制数据。

元组是形式(x1, y1, x2, y2)

 [(20.0, 10, 20, 10.0), (20, 10.0, 30, 10.0),
(30, 10.0, 40, 10.0), (40.0, 10, 40, 10.0),
(70.0, 10, 70, 10.0), (70, 10.0, 80, 10.0),
(80, 10.0, 90, 10.0), (90.0, 10, 90, 10.0),
(10.0, 20, 10, 20.0), (10.0, 20, 20, 10.0),
(20.0, 10, 10, 20.0), (20, 10.0, 30, 10.0),
(30, 10.0, 40, 10.0), (50.0, 20, 40, 10.0),
(40.0, 10, 50, 20.0), (50, 20.0, 60, 20.0),
(60.0, 20, 70, 10.0), (70.0, 10, 60, 20.0),
(70, 10.0, 80, 10.0), (80, 10.0, 90, 10.0),
(100.0, 20, 90, 10.0), (90.0, 10, 100, 20.0),
(10.0, 20, 10, 20.0), (20.0, 30, 10, 20.0),
(10.0, 20, 20, 30.0), (20.0, 30, 20, 30.0),
(40.0, 30, 40, 30.0), (40.0, 30, 50, 20.0),
(50.0, 20, 40, 30.0), (50, 20.0, 60, 20.0),
(70.0, 30, 60, 20.0), (60.0, 20, 70, 30.0),
(70.0, 30, 70, 30.0), (100.0, 30, 100.0, 20),
(20.0, 30, 20, 30.0), (30.0, 40, 20, 30.0),
(20.0, 30, 30, 40.0), (30.0, 40, 40, 30.0),
(40.0, 30, 30, 40.0), (40.0, 30, 40, 30.0),
(70.0, 30, 70, 30.0), (80.0, 40, 70, 30.0),
(70.0, 30, 80, 40.0), (80, 40.0, 90, 40.0),
(90.0, 40, 100, 30.0), (100.0, 30, 90, 40.0)]

如何才能做到这一点?


example = np.array([
                    [ 0,0, 0, 0, 0, 0,0,0,0,0,0],
                    [ 0,0, 1, 1, 1, 0,0,1,1,1,0 ],
                    [ 0,1, 0, 0, 0, 1,1,0,0,0,1 ],
                    [ 0,0, 1, 0, 1, 0,0,1,0,0,1 ],
                    [ 0,0, 0, 1, 0, 0,0,0,1,1,0 ]
                ]);

x = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
y = [0, 10, 20, 30, 40];

collection = marching_square(x, y, example, 1);

for ln in collection:
    for toup in ln:
        line = list(toup)
        plt.plot(line)
        
plt.show()

在此处输入图片说明

约翰·C

您可以提取x1, y1, x2, y2每个元组的,然后创建两个矩形边缘并填充:

import matplotlib.pyplot as plt

collection = [(20, 10, 20, 10), (20, 10, 30, 10), (30, 10, 40, 10), (40, 10, 40, 10), (70, 10, 70, 10), (70, 10, 80, 10), (80, 10, 90, 10), (90, 10, 90, 10), (10, 20, 10, 20), (10, 20, 20, 10), (20, 10, 10, 20), (20, 10, 30, 10), (30, 10, 40, 10), (50, 20, 40, 10), (40, 10, 50, 20), (50, 20, 60, 20), (60, 20, 70, 10), (70, 10, 60, 20), (70, 10, 80, 10), (80, 10, 90, 10), (100, 20, 90, 10), (90, 10, 100, 20), (10, 20, 10, 20), (20, 30, 10, 20), (10, 20, 20, 30), (20, 30, 20, 30), (40, 30, 40, 30), (40, 30, 50, 20), (50, 20, 40, 30), (50, 20, 60, 20), (70, 30, 60, 20), (60, 20, 70, 30), (70, 30, 70, 30), (100, 30, 100, 20), (20, 30, 20, 30), (30, 40, 20, 30), (20, 30, 30, 40), (30, 40, 40, 30), (40, 30, 30, 40), (40, 30, 40, 30), (70, 30, 70, 30), (80, 40, 70, 30), (70, 30, 80, 40), (80, 40, 90, 40), (90, 40, 100, 30), (100, 30, 90, 40)]

for x1, y1, x2, y2 in collection:
    plt.plot([x1, x1, x2, x2, x1], [y1, y2, y2, y1, y1])
    plt.fill([x1, x1, x2, x2, x1], [y1, y2, y2, y1, y1], alpha=0.3)
plt.show()

矩形

给定的示例似乎包含一些高度为零的矩形。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中绘制元组列表?

如何在Python中读取元组列表

如何在python中聚合元组列表?

如何在Python中搜索元组列表

如何在Python中的元组列表中枚举()?

如何在python中返回元组中的对象列表?

如何在python中的列表中添加元组

如何在python中解压缩元组列表?

如何在Python中打印不带括号的元组列表

如何在 Python 中散列列表元组

如何在Python中展平嵌套元组列表?

如何在 Python 中根据元组内容拆分列表

如何在 Python 中创建可更新的元组列表?

如何在python中解压缩元组列表

如何在python中通过子串找到元组列表中的元组?

如何在Python中将元组列表收集到一个元组中?

如何在元组中拆分列表?

如何在python 3.3中将嵌套的列表列表转换为元组列表?

如何在元组列表中修改元组的每个元素

如何在元组列表中连接元组内的元素?

如何在列表中查找重叠的元组并返回重叠的元组

当数据在元组中时,如何在matplotlib中绘制直方图?

如何在Python中对元组列表列表进行平面映射?

如何在Python中创建一个空列表或空列表元组?

如何在 Python 的列表中反转某些元组(用户按列表索引输入)?

Python:如何修改列表中的元组?

在 Python 中,如何在不使用 itertools 的情况下从给定元组列表中组合一组元组?

如何在 pyplot 中绘制坐标列表?

如何在Pygame中绘制精灵列表

TOP 榜单

热门标签

归档