Python:在底图上绘制的两条线之间填充空格

2024-09-27 00:15:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在python创建的基础地图上画了两条线。每条直线都是用两个点(起点和终点)创建的。两条线都来自同一点。在

m = Basemap(llcrnrlon=119.46,llcrnrlat=21.62,urcrnrlon=121.406,urcrnrlat=23.43, resolution = 'i', epsg=3825)
m.drawcoastlines()
m.plot([x, x1], [y, y1])
m.plot([x, x2], [y, y2])

导致这样的情节: enter image description here

我想在这两条线之间的区域(左下角较大的部分)着色。我知道这涉及到fill_between()和/或fill_betweenx()的一些用法,但我搞不懂。在

更广泛地说: 我有两条线从一个中心点开始。这些线代表雷达的扫描范围。我要填充不包括在这个扫描范围内的区域。这需要适用于任何两条线(任何扫描范围)。如果需要的话,我也可以用扫描角度来画出起始方位角和结束方位角。在

谢谢你的帮助。在


Tags: 区域plot地图fill基础直线basemap起点
2条回答

这是我的解决方案。希望它有帮助!在

from matplotlib.patches import Polygon

m = Basemap(llcrnrlon=119.46,llcrnrlat=21.62,urcrnrlon=121.406,urcrnrlat=23.43, resolution = 'i', epsg=3825)
m.drawcoastlines()

x,y = (119.46 + 121.406)/2.0,(21.62+23.43)/2.0
x1,y1 = 120.0,24.0
x2,y2 = 124.0,22.0
lons = np.array([x1,x, x2, x2,x1])
lats = np.array([y1, y, y2, y1,y1])
x, y = m( lons, lats )
xy = zip(x,y)
poly = Polygon( xy, facecolor='b', alpha=0.75 ,edgecolor = 'r', zorder =15,linewidth = 2)
plt.gca().add_patch(poly)
m.drawparallels(np.arange(21.0,24.0,0.5),labels=[1,0,0,1],size=12,linewidth=0,color= '#FFFFFF')
m.drawmeridians(np.arange(119.8,121.5,0.5),labels=[1,0,0,1],size=12,linewidth=0)

enter image description here

我用楔形贴片物体和雷达扫描的方位角来解决这个问题。在

fig, ax = plt.subplots()
m = Basemap(llcrnrlon=119.46,llcrnrlat=21.62,urcrnrlon=121.406,urcrnrlat=23.43, resolution = 'i', epsg=3825)
m.drawcoastlines()
wedge = Wedge((x,y), 200000, az2, az1, edgecolor="none", color = 'grey', alpha = 0.2)
ax.add_patch(wedge)

相关问题 更多 >

    热门问题