Постройте несколько строк в python/basemap

Я только начал изучать python/matplotlib/basemap и мне действительно нужна помощь. Как построить несколько строк?

Скажем, мои данные выглядят примерно так:

[(lat1,lon1) (lat2,lon2) (lat3,lon3)]
[(lat1,lon1) (lat2,lon2) (lat3,lon3)]
[(lat1,lon1) (lat2,lon2) (lat3,lon3)]
...

Я хочу построить отдельную строку для каждой строки в моих данных. Однако с моим кодом я получаю то, что он соединяет последнюю точку в предыдущей строке с первой в текущей строке. Может ли кто-нибудь помочь мне исправить это? Благодарю вас!

РЕДАКТИРОВАТЬ: Вот что у меня есть для кода:

for page in files:
    file = open(dir + '/' + page)
    for line in file:
       lines = line.split()
       time = lines[0]
       lon = lines[1]
       lat = lines[2]
       lon_float = float(lon)
       lat_float = float(lat)
       lats.append(lat_float)
       lons.append(lon_float)
    x,y = m(lons, lats)
    m.plot(x,y,'D-')
plt.show()

Я хочу построить одну строку для каждого файла (который имеет несколько пар широты и долготы). Кроме того, m - мой экземпляр Baseplot.


person peter_wx    schedule 22.07.2012    source источник
comment
а, посмотри мой отредактированный ответ. Мы лаяли не на то дерево ;)   -  person tacaswell    schedule 23.07.2012


Ответы (1)


Вы не очищаете lats и lons, поэтому каждый раз, проходя цикл файлов, вы накапливаете очки.

for page in files:
    file = open(dir + '/' + page)
    lats = []
    lons = []
    for line in file:
        ...

РЕДАКТИРОВАТЬ: Полностью переписал ответ

person tacaswell    schedule 22.07.2012
comment
Для большей ясности операторы zip можно разделить на две строки: lats, lons = zip(*data), за которой следует plt.plot(lons, lats). Я думаю, что порядок lons и lats, возможно, придется переключить, чтобы пример @tcaswells работал (но я никогда не могу вспомнить с уверенностью). - person pelson; 23.07.2012
comment
Да! Это именно то, что я хотел! Большое спасибо!! В этом столько смысла! - person peter_wx; 23.07.2012