2013-04-11 4 views
1

위성보기에서부터 grib2 파일의지도로 비 summas 데이터를 플롯해야합니다. 마지막으로 텍스트 파일을 통해 numpy 배열로 데이터를로드하고 Basemap을 사용하여 그림 좌표와 연결했습니다. 그러나 문제는 파이썬이 데이터의 색깔있는 점을 넣지는 않지만 데이터 필드의 인접한 점 사이에 선을 그리는 경향이 있다는 것입니다. 그래서 그 그림은보기 흉하게 보입니다. 문제의 출처가 표시되지 않습니다. 내 코드의pcolormesh는 점을 그리지 않고 데이터 점 사이의 선을 그립니다.

조각은 다음과 같습니다 : 그 후


import numpy as np 
import matplotlib 
matplotlib.use('Agg') 
from scipy import * 
from pylab import * 
from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
from mpl_toolkits.basemap import cm 
내가 필요한 데이터를 읽고 약 모양과 각도 (100000, 2) 각각 위도 포함하는, 경도, 3 개 NumPy와 배열을 생성 각 데이터 포인트의 값. I는 이러한 명령을 이용하여 시각화 :

def joonista(lats,lons,value,nimi,clevs,koloriit): 

은 기재된 --------- (도시 생략)의 재 형성 단편 "라트", "Lons의", "값"배열을 생성 ----- 나는 t을 생각하면

Example

내가, 감사 할 것 : 여기


-------

map=Basemap(projection='aea',lat_1=30,lat_2=50,lat_0=45,lon_0=0,llcrnrlon=-30,llcrnrlat=20,urcrnrlon=80,urcrnrlat=53,resolution='l',) 

x, y = map(lons, lats) 
map.drawcoastlines(linewidth=0.17,color='0.7') 
map.drawcountries(linewidth=0.17,color='0.7') 
map.drawmeridians(np.arange(-50,60,5),linewidth=0.17,color='0.7',labels=[False,False,False,True]) 
map.drawparallels(np.arange(-25, 70, 5),linewidth=0.17,color='0.7',labels=[True,False,False,False]) 
varvid=mpl.colors.ListedColormap(koloriit) 
norm = mpl.colors.BoundaryNorm(clevs,varvid.N) 
cs = map.pcolormesh(x,y,value,cmap=varvid,norm=norm) 
savefig(nimi,dpi=300) 
plt.clf() 

joonista(latA,lonA,valueA,'h05',[-1,0.00001,0.001,0.01,0.1,0.3,0.5,1,2,3,4,5,6,7,8,9,10,11,12,13],['k','c','#a0fff9','#00b354','#69b300','#97ff03','#C2524D','#FF7500','#b3a900','#fff551','#515bff','#45adff','#da000d','#ff2a36','#ffa0a5','#f003ff','#f778ff','0.5','0.75']) 
joonista(latB,lonB,valueB,'h04',[-1,0.0000000000001,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],['k','c','#a0fff9','#00b354','#69b300','#97ff03','#C2524D','#FF7500','#b3a900','#fff551','#515bff','#45adff','#da000d','#ff2a36','#ffa0a5','#f003ff','#f778ff','0.5','0.75']) 
는 예제 사진입니다 오래된이 ​​문제를 해결하는 방법. 알렉세이

+1

imgur.com과 같은 곳에서 사진을 업로드하고 URL을 게시 할 수 있습니다. –

+0

감사합니다, Lev, imgur.com에 그림을 추가했습니다. http://alekseiva.imgur.com/all/#_=_ –

+2

순서가 정렬되지 않은 것처럼 보입니다. 그들을 보간해야합니다. 'pcolormesh'는 여러분의 포인트가 정규 그리드 상에 있다고 가정합니다. 색으로 구분 된 점을 그려 넣으려면 'scatter'를 사용하십시오 (예 :'plt.scatter (x, y, c = value)'). –

답변

1

조 킹톤 추천을 사용

, 나는 잘 강수량 분포를 시각화

cs=plt.scatter(x,y,c=value,s=0.6, edgecolors='none',marker=',',cmap=varvid,norm=norm) 

명령

에 의해 명령

cs=map.pcolormesh(x,y,value,cmap=varvid,norm=norm) 

를 교체했다.

도움 주셔서 감사합니다.

관련 문제