我正在尋找一種在底圖上繪製實心矩形的方法。我可以很容易地使用drawgreatcircle
方法繪製矩形的邊緣,但我找不到實際填充這些矩形(指定顏色和alpha)的方法。如何在底圖上繪製矩形
10
A
回答
24
您可以直接將matplotlib.patches.Polygon()添加到您的座標軸。問題是你是否想要你的矩形定義繪圖座標(繪圖上的直線)或地圖座標(繪圖上的大圓圈)。無論哪種方式,您都可以在地圖座標中指定頂點,然後通過調用底圖實例(下面的示例中的m()
)將它們轉換爲繪圖座標,自己構建一個多邊形並手動將其添加到要渲染的軸。
對於情節定義的矩形座標,這裏有一個例子:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def draw_screen_poly(lats, lons, m):
x, y = m(lons, lats)
xy = zip(x,y)
poly = Polygon(xy, facecolor='red', alpha=0.4)
plt.gca().add_patch(poly)
lats = [ -30, 30, 30, -30 ]
lons = [ -50, -50, 50, 50 ]
m = Basemap(projection='sinu',lon_0=0)
m.drawcoastlines()
m.drawmapboundary()
draw_screen_poly(lats, lons, m)
plt.show()
對於地圖座標定義的矩形,使用同樣的方法,但轉化繪製座標插補之前你在地圖空間線。對於每一個線段,你必須做的:
lats = np.linspace(lat0, lat1, resolution)
lons = np.linspace(lon0, lon1, resolution)
然後把這些地圖座標繪製座標(同上,用m()
),然後重新創建一個多邊形的情節座標。
1
類似的回答以上,但更基本的代碼:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
map = Basemap(projection='cyl')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='coral',lake_color='aqua')
map.drawcoastlines()
x1,y1 = map(-25,-25)
x2,y2 = map(-25,25)
x3,y3 = map(25,25)
x4,y4 = map(25,-25)
poly = Polygon([(x1,y1),(x2,y2),(x3,y3),(x4,y4)],facecolor='red',edgecolor='green',linewidth=3)
plt.gca().add_patch(poly)
plt.show()
相關問題
- 1. 在圖框上繪製矩形 - 如何限制矩形區域?
- 2. 如何在PictureBox上繪製矩形?
- 3. 在JPanel上繪製矩形
- 4. javascript在圖像上繪製矩形
- 5. 在圖像上繪製一個矩形
- 6. 在圖像上繪製矩形
- 7. 在圖像上繪製矩形
- 8. 如何在距離矩陣的熱圖上繪製樹形圖
- 9. 如何在情節中在子圖上繪製矩形?
- 10. 如何繪製矩形?
- 11. 如何繪製矩形?
- 12. 在圓形公式上繪製矩形
- 13. 在矩形上繪製圓形
- 14. 繪製矩形視圖與曲線底部在Android中
- 15. 繪製矩形上Mapbox GL
- 16. 繪製矩形圖像 - LibGdx
- 17. 如何在matplotlib中的圖例上繪製一個矩形?
- 18. 如何使用matlab在圖像上繪製矩形?
- 19. 如何在wxpython中的wx.StaticBitmap圖像上繪製矩形
- 20. 如何繪製頂部和底部邊緣的矩形
- 21. 如何在android錄像機上手動繪製圓形,矩形
- 22. 如何在圓角矩形內或圓形內繪製圖像?
- 23. 如何在Paper.js中繪製矩形?
- 24. 如何在python中繪製矩形?
- 25. 如何在flex 4.5.1中繪製矩形?
- 26. 繪圖矩形
- 27. 繪製矩形,然後繪製縮小矩形在先前的矩形內
- 28. 如何在UIButton UIButtonTypeRoundedRect上繪製圖形?
- 29. 如何在圖形上繪製JMenuBar
- 30. Android - 如何在SurfaceView上繪製圖形