- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个点图,并使用 python basemap 在其上覆盖了县边界。我有另一个 shapefile,它基于 IUCN 数据的物种分布图(species_13143)。我已将该形状文件叠加到之前的 map 上。效果很好。但不幸的是,它没有填充与其关联的多边形。我想根据这张 map 使用颜色来填充这些多边形(我不介意颜色;单色就可以了)
我在 StackOverflow 中发现了类似的问题。但这些对我来说都不起作用。代码和相关图像附在这里..
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
plt.figure(figsize=(5,10))
map = Basemap(projection = 'merc', resolution = 'h',area_thresh = 0.5, llcrnrlon=79.2643, llcrnrlat=5.3135, urcrnrlon=82.0658, urcrnrlat=9.951)
map.drawcoastlines(linewidth=0.5)
map.drawcountries(linewidth=0.5)
map.fillcontinents(alpha=0.5)
map.drawmapboundary()
map.drawmeridians(np.arange(0, 360, 0.5), labels=[False, False, False, True], linewidth=0.1,)
map.drawparallels(np.arange(-90, 90, 0.5), labels=[False, True, False, False], linewidth=0.1)
#Read district boundaries.
sh_info=map.readshapefile('C:\\Users\\Tharindu\\Downloads\\species_13143\\species_13143',"areas",color='blue')
shp_info = map.readshapefile('C:\\Users\\Tharindu\\downloads\\Compressed\\LKA_adm1',"areas")
for index,row in sightings_dropped.iterrows():
x,y = map(row['longitude'], row['latitude'])
map.plot(x, y, 'green', markersize=7, alpha=0.8,marker='o',markeredgecolor='black')
map.drawmapscale(81.5, 5.8, 80.5, 6, 50)
最佳答案
如果我理解正确的话...本质上,您所寻找的只是用任何颜色填充形状文件?这实际上列在 basemap 中 docs .
from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
patches = []
for info, shape in zip(map.comarques_info, map.comarques):
patches.append( Polygon(np.array(shape), True) )
ax.add_collection(PatchCollection(patches, facecolor= 'm', edgecolor='k', linewidths=1., zorder=2))
我是列表理解的粉丝:
from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
patches = [Polygon(np.array(shape), True) for info, shape in zip(m.states_info, m.states)]
ax.add_collection(PatchCollection(patches, facecolor= 'green', edgecolor='k', linewidths=1., zorder=2))
希望这对您有所帮助,并回答您的问题。
关于python - 使用 basemap 中的颜色填充 shp 文件中的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47974693/
我正在创建一个显示世界地图的图形,上面有一些数据(这与这里无关)。现在我希望能够使用平移/缩放按钮或缩放到矩形按钮来放大它,然后在完成放大后将图形保存到图片文件中。问题是轴注释(和 lng-/lat-
我在 Python 2.7 上使用 basemap ,但想使用 Python 3,因此,转向 cartopy。如果您能给我一些如何将我的代码从 basemap 更改为 cartopy 的建议,那就太棒
我在安装 Matplotlib basemap 工具包时真的很难受,谁能帮我解决这个问题... 我已按照以下说明操作: basemap-1.x.x $cd geos-3.3.3 basemap-1.x
我已经安装 basemap 使用 conda install basemap 我可以使用导入 import mpl_toolkits.basemap as bm 但是打电话 bm.Basemap(pr
我想计算地球表面两点之间的距离(以米为单位) 我尝试过同时使用 basemap 和 cartopy,但两者的结果不同。 basemap : import mpl_toolkits.basemap.py
我是 python 和 matplotlib(以及 stackoverflow)的新手。你能告诉我如何用这个椭圆函数扩展我的 basemap 类吗?来自 regeirk 的原始帖子“在 matplot
from mpl_toolkits.basemap import Basemap 给予 ImportError: No module named 'mpl_toolkits.basemap' 我用
我想在开放图层中使用 wmts map 服务。 wmts层应该是基础层,它应该只显示wmts层,没有别的! 开放层的问题是我只能看到 osm 层而根本看不到 wmts 层。 还是应该使用 getCap
我们可以使用 MapBox API 来显示 bing basemap 或 ESRI basemap (例如 ESRI 街道或 ESRI Topo 等)吗?我正在浏览 MapBox API,但似乎没有找
如何在 basemap 库中添加 basemap 。在默认的 BasemapGallery 类中,我们只有 5 个 basemap 图层。但是我们如何向该 BasemapGallery 添加另一个/自
是否可以指定 ESRI basemap 图库 (esri/dijit/BasemapGallery) 使用哪些 ArcGIS basemap ? 将 showArcGISBasemaps 设置为 tr
我使用的是 Mac OS X 10.6.8。我使用 http://www.python.org/ 中的二进制安装程序安装了 Python 2.6。 .自 2011 年 3 月以来,我一直将它与 Sci
简而言之,我需要由传单图层控件控制的图层组,一次两到三个。在此 JSFiddle ,在更改 basemap 时,水力叠加层需要始终位于各种 basemap 之上。 如果您运行并使用右上角的图层控件,您
我对颜色条的文本位置有疑问。我正在使用 matplotlib Basemap 绘制一些图,我使用 colorbar()功能。 现在我需要把我的颜色条放在我的图的左边。所以我使用 location='l
我想在 word 文档中添加一个 basemap 。 在官员包的文档中有一个使用 plot_instr 函数的示例: anyplot <- plot_instr(code = { barplot(
我正在尝试熟悉 matplotlib 和 Basemap。首先,我尝试生成一个与我有数据的特定网格相匹配的格陵兰图像。 下面令人毛骨悚然的细节描述了我的问题:我无法创建大小与所需投影/区域相匹配的图像
我看到一些奇怪的 basemap 行为。它画了一个大圆,里面有一个缺口。 以下是从温哥华到伦敦绘制大圆的代码: from mpl_toolkits.basemap import Basemap imp
map = Basemap(resolution ='c') map.drawcoastlines() map.drawcountries() map.drawmeridian
我正在将代码中的默认 basemap 更改为 mapbox.streets。但它不会再从 baseLayerPicker 小部件更新 baselayer。 var vi
installing basemap 中有一些非常有用的链接对于 python,但是在尝试测试安装是否有效时,我似乎在安装结束时遇到了一个问题。我正在 Mac 上安装。 我看到的错误信息是: Fi
我是一名优秀的程序员,十分优秀!