2012-07-22 3 views
4

저는 방금 python/matplotlib/basemap을 배우기 시작했고 실제로 도움을받을 수있었습니다. 어떻게 여러 줄을 그립니 까?python/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 인스턴스

+0

아, 내 편집 대답을 참조하십시오. – tacaswell

답변

2

latslons을 지우지 않으므로 파일 루프를 통해 매번 포인트가 누적됩니다.

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

편집 : 완전히 다시 쓴 대답은

+0

명확성을 돕기 위해 zip 명령문은'lats, lons = zip (* data)'다음에'plt.plot (lons, lats)'라는 두 줄로 나눌 수 있습니다. 나는 lons와 lats의 순서가 @tcaswells 예제가 작동하도록 전환 될 필요가 있다고 생각한다. (그러나 나는 결코 자신감을 가지고 기억할 수 없다). – pelson

+0

예! 그게 내가 원하는거야! 정말 고맙습니다!! 그렇게 많은 의미가 있습니다! –