我在epsg:27700中具有一个点的地理数据框,并希望使用geoplot.kdeplot()在也位于epsg:27700中的栅格图层上绘制这些点。但是我努力做到这一点。
最初,我尝试过Geopandas使用Contextily添加背景。尽管它可以工作,但是该区域的范围很小,将其转换为epsg = 3857并使用缩放级别13使街道地图最不可见-这些点不会落在应有的位置。
gdf = geopandas.GeoDataFrame(df1, crs=crs, geometry=geom) #geodataframe from pandas dataframe
gdf.Prob[gdf.Prob < 0.2]= np.nan #set probability values <0.2 to nan for transparency
gdf.plot(column='Prob',figsize=(10, 10), alpha=0.5, legend=True)
rst = rasterio.open('UUS.tif')
red = rst.read(1)
bounds = (rst.bounds.left, rst.bounds.right, \
rst.bounds.bottom, rst.bounds.top)
plt.figure(num=None, figsize=(10, 10), facecolor='w', edgecolor='k')
plt.imshow(red, extent=bounds, cmap = 'gray')
我希望这些点在栅格上(最好是kdeplot)。我以前在R中用最少的精力就完成了,但是在这里我需要用Python来做,而我是Python的新手。解决方案在这里也可能非常简单,但是我需要一些建议。谢谢您阅读本文。
答案 0 :(得分:1)
您必须将相同的matplotlib import matplotlib.pyplot as plt
gdf = geopandas.GeoDataFrame(df1, crs=crs, geometry=geom) #geodataframe from pandas dataframe
gdf.Prob[gdf.Prob < 0.2]= np.nan #set probability values <0.2 to nan for transparency
fig, ax = plt.subplots(figsize=(10, 10))
gdf.plot(column='Prob',ax=ax, alpha=0.5, legend=True)
rst = rasterio.open('UUS.tif')
red = rst.read(1)
rst.plot.show(red, ax=ax)
传递给两个图。因此,在您的情况下,应采取以下措施。
var myRe = view.findViewById<RecyclerView>(R.id.myRecyclerViewMain)
您可能需要在gdf之前绘制rst,对此不确定。