İstediğim haritayı almaya yakınım. Matplotlib'in Basemap'ı harika, ama yakınlaştırdığımda kıyı çizgileri çok kaba. Doğal Dünya şekil dosyalarını okuyabiliyorum ve bunları çok daha iyi çizebiliyorum… ama çokgenleri doldurmaya çalıştığımda, sanırım tüm bunları tedavi ediyor. Tek bir poligona ait olan noktalar. Çokgenler arasında nasıl yineleyebilir ve haritayı nasıl doğru gösterebilirim?Matplotlib Basemap'ta çokgenler olarak Doğal Dünya şekillerini panklonlamak için Python'u kullanma
Şimdiden teşekkürler!
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
%matplotlib inline
landColor, coastColor, oceanColor, popColor, countyColor = '#eedd99','#93ccfa','#93ccfa','#ffee99','#aa9955'
fig = plt.figure()
ax = fig.add_subplot(111)
s = 1900000
m = Basemap(projection='ortho',lon_0=-86.5,lat_0=30.3,resolution='l',llcrnrx=-s,llcrnry=-s,urcrnrx=s,urcrnry=s)
m.drawmapboundary(fill_color=oceanColor) # fill in the ocean
# generic function for reading polygons from file and plotting them on the map. This works with Natural Earth shapes.
def drawShapesFromFile(filename,facecolor,edgecolor,m):
m.readshapefile(filename, 'temp', drawbounds = False)
patches = []
for info, shape in zip(m.temp_info, m.temp): patches.append(Polygon(np.array(shape), True))
ax.add_collection(PatchCollection(patches, facecolor=facecolor, edgecolor=edgecolor, linewidths=1))
# read the higher resolution Natural Earth coastline (land polygons) shapefile and display it as a series of polygons
drawShapesFromFile('\\Conda\\notebooks\\shapes\\ne_10m_coastline',landColor,coastColor,m)
drawShapesFromFile('\\Conda\\notebooks\\shapes\\ne_10m_urban_areas',popColor,'none',m)
m.drawcounties(color=countyColor)
plt.gcf().set_size_inches(10,10)
istediği gibi
: Yapmam gereken tek şey böyle
ne_10m_land
içinne_10m_coastline
değiştirmek oldu. Yanlış giriş verilerini kullanıyordum. Kara veri kümesi yerine sahil şeridi veri kümesini kullandım. Hata. Umarım yukarıdaki kod herkese yararlı olacaktır. –Kendi fikrinizi cevap olarak göndermelisiniz! – tmthydvnprt