2015-07-14 3 views
0

Я делаю выпуклый корпус в питоне, по множеству широтных и продольных положений. Затем я хочу нарисовать точки вместе с ConvexHull в базовой карте. Все работает нормально, если я рисую их в обычном сюжете без карты, так как следую инструкциям от http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.html#scipy.spatial.ConvexHull. Когда я пытаюсь построить их с базовой картой, я просто получаю обычный сюжет. Что я делаю неправильно?Участок выпуклыйHull в базовой карте

import matplotlib.pyplot as plt 
import numpy as np 
from mpl_toolkits.basemap import Basemap 

map = Basemap(projection='merc', 
    resolution = 'c', area_thresh = 40, 
    llcrnrlon=27.72, llcrnrlat=69.41, 
    urcrnrlon=28.416, urcrnrlat=70.95) 
con = lite.connect(databasepath) 
    with con: 
     cur = con.execute("SELECT DISTINCT latitude, longitude FROM MessageType1 where latitude>= 70.55 and latitude<= 70.7 and longitude >= 27.72 and longitude <= 28.416 limit 100 ") 
     points = [[float(x[1]), float(x[0])] for x in cur] 
     points = np.array(points) 
     hull = ConvexHull(points) 

     x,y = map(points[:,0], points[:,1]) 
     plt.plot(x, y, 'o') 
     for simplex in hull.simplices: 
      x,y = map(points[simplex,0], points[simplex,1]) 
      plt.plot(x,y, 'k-') 
     plt.show() 

ответ

1

Вам необходимо добавить некоторые методы после настройки Базовой карты, чтобы нарисовать объекты карты. Например:

map.drawcoastlines() 
map.drawstates() 
map.drawcountries() 
map.drawmapboundary() 

Смотрите документацию: http://matplotlib.org/basemap/users/geography.html

Смежные вопросы