使用 Graph、Vertex 和 Edge 数据结构在 Python 中创建地铁站网络

问题描述

我对 Python 还很陌生,我有一份需要使用图、顶点和边概念的大学作业,但是我正在努力研究如何正确实现这一点。

以下是所需工作的描述:

a) 在 Vertex 中,创建一个 Station 子类,以包含该站的 id 和位置(以十进制度数表示) 地球表面的物体。

b) 从 lisbon.stations.csv 中的数据集创建 Station 对象列表。

c) 在 Edge 下,创建一个 Edge_line 子类,以包含连接所在的线。

d) 从同一数据集创建“Edge_line”对象列表。

e) 创建一个图结构。

f) 创建一个能够查看网络的过程/方法

示例:

Import myplotlib.myplot as plt
fig = plt.figure()
plt.line(x,y,c=color) 
  • 查看连接,其中 x 和 y 是列表,其中包含 Edge 终端站在地图上的位置;运行次数与连接数相同。

  • 按照 lisbon.lines.csv 中的表格所示对颜色进行编码。

以下是我目前的代码。我想我设法做到了 c) 点,但希望您能在审查整个代码方面得到帮助。

https://pastebin.com/5t9A8dfC

此外,请在下方找到用于这项工作所需的 CSV 文件

lisbon.lines.csv

"line","name","colour"
1,"Vermelha","r"
2,"Azul","b"
3,"Verde","g"
4,"Amarela","y"

lisbon.stations.csv

"id","latitude","longitude","name"
1,38.771746,-9.1306207,"Aeroporto"
2,38.7758674,-9.1177189,"Encarnação"
3,38.775383,-9.1048967,"Moscavide"
4,38.770726,-9.1014767,"Oriente"
5,38.764569,-9.1064637,"Cabo Ruivo"
6,38.761624,-9.112163,"Olivais"
7,38.755357,-9.113954,"Chelas"
8,38.747860,-9.118439,"Bela Vista"
9,38.739911,-9.123824,"Olaias"
10,38.737158,-9.133888,"Alameda"
11,38.735426,-9.145261,"Saldanha"
12,38.734815,-9.154220,"São Sebastião"
13,38.713814,-9.122570,"Santa Apolónia"
14,38.707175,-9.133352,"Terreiro do Paço"
15,38.710700,-9.139274,"Chiado"
16,38.715169,-9.141632,"Restauradores"
17,38.720109,-9.145883,"Avenida"
18,38.725357,-9.150099,"Marquês de Pombal"
19,38.729726,-9.150335,"Parque"
20,38.737849,-9.158458,"Praça de Espanha"
21,38.742029,-9.168977,"Jardim Zoologico"
22,38.748530,-9.172462,"Laranjeiras"
24,38.749609,-9.179994,"Alto dos Moinhos"
25,38.752836,-9.189426,"Colégio Militar"
26,38.759139,-9.192718,"Carnide"
27,38.762243,-9.196849,"Pontinha"
28,38.760578,-9.204724,"Alfornelos"
29,38.758411,-9.219122,"Amadora Este"
30,38.752186,-9.224132,"Reboleira"
31,38.706116,-9.145123,"Cais do Sodré"
32,38.713994,-9.138450,"Rossio"
33,38.716256,-9.136219,"Martim Moniz"
34,38.722266,-9.135371,"Intendente"
35,38.726275,-9.134942,"Anjos"
36,38.733639,-9.134167,"Arroios"
37,38.748653,-9.141581,"Roma"
38,38.753129,-9.144016,"Alvalade"
39,38.760212,-9.157874,"Campo Grande"
40,38.760296,-9.166135,"Telheiras"
41,38.793193,-9.173379,"Odivelas"
42,38.785867,-9.172124,"Senhor Roubado"
43,38.779645,-9.159721,"Ameixoeira"
44,38.772903,-9.159753,"Lumiar"
45,38.767022,-9.155333,"Quinta das Conchas"
46,38.751812,-9.159045,"Cidade Universitária"
47,38.747001,-9.147973,"Entre Campos"
48,38.741545,-9.146739,"Campo Pequeno"
49,38.730925,-9.146653,"Picoas"
50,38.720094,-9.154077,"Rato"
23,38.742541,-9.133747,"Areeiro" 

lisbon.connections.csv

"station1","station2","line"
1,2,1
2,3,1
3,4,1
4,5,1
5,6,1
6,7,1
7,8,1
8,9,1
9,10,1
10,11,1
11,12,1
13,14,2
14,15,2
15,16,2
16,17,2
17,18,2
18,19,2
19,2
12,20,2
20,21,2
21,22,2
22,24,2
24,25,2
25,26,2
26,27,2
27,28,2
28,29,2
29,30,2
31,3
15,32,3
32,33,3
33,34,3
34,35,3
35,36,3
36,3
10,23,3
23,37,3
37,38,3
38,39,3
39,40,3
41,42,4
42,43,4
43,44,4
44,45,4
45,4
39,46,4
46,47,4
47,48,4
48,4
11,49,4
49,4
18,50,4

PS:如果有任何其他方法可以将实际的 csv 文件附加到此线程,请告诉我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)