gpt4 book ai didi

python - 按特定顺序连接散点图点 matplotlib

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:52 28 4
gpt4 key购买 nike

我想使用 matplotlib 绘制元组列表的散点图,其元素是 x 和 y 坐标。它们的连通性由另一个列表决定,该列表说明哪个点连接到哪个点。我到目前为止是这样的:

import itertools
import matplotlib.pyplot as plt

coords = [(0.0, 0.0), (1.0, 1.0), (1.0, 0.0), (2.0, 1.0), (2.0, 0.0), (3.0, 1.0)]
connectivity = coords[0] <--> coords[1], coords[2]
coords[1] <--> coords[0], coords[2], coords[3]
coords[2] <--> coords[0], coords[1], coords[4]
coords[3] <--> coords[1], coords[3], coords[5]
coords[4] <--> coords[2], coords[3], coords[5]
coords[5] <--> coords[3], coords[4]
x, y = zip(*coords)
plt.plot(x, y, '-o')
plt.show()

我知道连接部分不是实际的 python 脚本。我包括这个是为了向大家展示这些点应该如何连接。运行此脚本时(没有连接位)我得到下图:

enter image description here

但是,我希望情节显示为:

enter image description here

有什么想法可以做到这一点吗?

最佳答案

只需分别绘制每个线段。这也提供了更大的灵 active ,因为您可以为每个连接独立更改颜色、添加方向箭头等。

在这里,我使用了 Python 字典来保存您的连接信息。

import matplotlib.pyplot as plt

coords = [(0.0, 0.0), (1.0, 1.0), (1.0, 0.0), (2.0, 1.0), (2.0, 0.0), (3.0, 1.0)]
connectivity = {0: (1,2), #coords[0] <--> coords[1], coords[2]
1: (0, 2, 3), #coords[1] <--> coords[0], coords[2], coords[3]
2: (0, 1, 4), #coords[2] <--> coords[0], coords[1], coords[4]
3: (1, 3, 5), #coords[3] <--> coords[1], coords[3], coords[5]
4: (2, 3, 5), #coords[4] <--> coords[2], coords[3], coords[5]
5: (3, 4) #coords[5] <--> coords[3], coords[4]
}
x, y = zip(*coords)
plt.plot(x, y, 'o') # plot the points alone
for k, v in connectivity.iteritems():
for i in v: # plot each connections
x, y = zip(coords[k], coords[i])
plt.plot(x, y, 'r')
plt.show()

enter image description here

根据您呈现连接的方式,这里有重复的行,例如,(0,1)(1,0)。我假设您最终会想要指明方向,所以我将它们留在了里面。

关于python - 按特定顺序连接散点图点 matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33335601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com