Визуализация отдельных вложенных списков - PullRequest
0 голосов
/ 19 сентября 2019

Я пытался разделить основной вопрос и получить ответ, но это не сработало.Итак, задавая весь вопрос.

У меня есть список списка (или вложенный список):

list = 

[[      ordinal  id_easy  latitude  longitude
  1891        1    17840   11.1069     7.6450
  1892        2    17840   11.1069     7.6387
  1893        3    17840   11.1075     7.6291
  1894        4    17840   11.1121     7.6297,
      ordinal  id_easy  latitude  longitude
  3855      1    15192   11.0066     7.5420
  3856      2    15192   11.0076     7.5423
  3857      3    15192   11.0066     7.5409
  3858      4    15192   11.0067     7.5413,
      ordinal  id_easy  latitude  longitude
 1478        1     3487   11.0333     7.5596
 1479        2     3487   11.0374     7.5658
 1480        3     3487   11.0356     7.5761],
    [  ordinal  id_easy  latitude  longitude
  4143       1    26587   11.0363     7.6438
  4144       2    26587   11.0365     7.6431,
       ordinal  id_easy  latitude  longitude
  435        1    20047   11.0762     7.6594
  436        2    20047   11.0759     7.6517
  437        3    20047   11.0756     7.6437]

Длина этого вложенного списка:

len(final_cluster_result) = 2     #2 clusters

Если я проверю длину первого кластера:

final_cluster_result[0]) = 3     # 3 cars in cluster 1

И, наконец, final_cluster_result[0][0].longitude и .latitude дают нам серию с указанием местоположения первого кластера, первого автомобиля.

Вопрос:

С помощью цикла for я хочу:

  • отобразить все кластерные геоданные на сером
  • графике на предыдущем выделенном геоданныхпервый кластер, затем другой график со вторым кластером
  • (!) Выделив кластер на сером графике, раскрасьте каждый автомобиль другим цветом (как мы видим в столбце id_easy - это отдельный автомобиль).
  • после этого я хочу показать начальную точку каждого автомобиля (представьте, что заглавная O является отправной точкой, а остальные o являются остальными [O o o o o])

Что-то вроде:

enter image description here

Но там в красных точках не одна машина, а 2-3 машины.Я хочу определить их в другом цвете

1 Ответ

0 голосов
/ 22 сентября 2019

Следующее не удовлетворяет каждому пункту вашей спецификации, но я считаю, что это дает хорошее направление.Однако я не уверен, зачем хранить список списков фреймов с идентичной структурой, а не работать с одним фреймом.

import matplotlib.pyplot as plt
import matplotlib

id = 17840
label = []
x = []
y = []

for cluster_list in list:
    for cluster in cluster_list:
        for index,row in cluster.iterrows():
            x.append(row['latitude'])
            y.append(row['longitude'])
            if row['id_easy'] == id:
                label.append(1)
            else:
                label.append(0)

colors = ['gray','red']
fig = plt.figure(figsize=(8,8))
plt.scatter(x, y, c=label, cmap=matplotlib.colors.ListedColormap(colors))
plt.show()

...