我正在從GIS數據庫讀取數據,並使用mpl_toolkits.basemap和matplotlib創建地圖。一些數據創建複雜的多邊形(由外部和內部環定義)。但是,我一直無法找到如何創建帶孔的多邊形。這甚至可能與matplotlib?是否有另一種方法來創建這個圖像?如何繪製複雜的多邊形?
0
A
回答
1
老問題,但...
就明確地關閉您的內部和外部邊界和它們一起求和。從技術上講,會有一個接縫,但你不會看到它(如果你提供了一個顏色參數 - 不完全確定爲什麼這樣)。
#!/usr/bin/env python3
import matplotlib.pyplot as plt
# a 4x4 box (counterclockwise)
ext_x = [2, -2, -2, 2, 2]
ext_y = [2, 2, -2, -2, 2]
# a 2x2 hole in the box (clockwise)
int_x = [item/2.0 for item in ext_x][::-1]
int_y = [item/2.0 for item in ext_y][::-1]
# if you don't specify a color, you will see a seam
plt.fill(ext_x+int_x, ext_y+int_y, color='blue')
plt.show()
0
fill_between()怎麼樣?
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.fill_between
我不知道究竟是如何拉過一個多邊形,但它的工作原理是這樣
import numpy as np
import matplotlib.pylab as plt
x=np.arange(-3,3.5,.5)
y1=-x**2+9
y2=-x**2+10
plt.fill_between(x,y1,y2)
您應該能夠建立你的身材一個fill_between一次直到你有你想要的。
或可能的path。看看這些screenshots,看看有沒有什麼東西似乎接近。
編輯:您可能意味着一個孔這樣
import numpy as np
import matplotlib.pylab as plt
x=np.arange(-3,3.5,.5)
y1=-x**2+9
y2=0
plt.fill_between(x,y1,y2)
circ=plt.Circle((0,4),2,color='w')
ax=plt.gca()
ax.add_patch(circ)
plt.show()
4
實際上,您可以在matplotlib中繪製帶有孔的多邊形。訣竅是使用Path和PathPatch。例如:
import matplotlib.pyplot as plt
from matplotlib.patches import PathPatch
from matplotlib.path import Path
axes = plt.gca()
path = Path([(2,2) ,(2,-2) ,(-2,-2) ,(-2,2) ,(0,0) ,(1,0) ,(-1,1) ,(-1,-1) ,(0,0) ],
[Path.MOVETO,Path.LINETO,Path.LINETO,Path.LINETO,Path.CLOSEPOLY,Path.MOVETO,Path.LINETO,Path.LINETO,Path.CLOSEPOLY])
patch = PathPatch(path)
axes.set_xlim(-3,3)
axes.set_ylim(-3,3)
axes.add_patch(patch)
plt.savefig('example.png')
plt.close('all')
在this example上述結果(不能發佈圖像尚未)。 請注意,纏繞順序似乎很重要。
相關問題
- 1. 複雜的多邊形
- 2. 繪製多邊形
- 3. 繪製多邊形
- 4. 繪製多邊形
- 5. 如何繪製多邊形的d3.js
- 6. 如何繪製填充的多邊形?
- 7. 繪製多邊形PyQt的
- 8. 如何繪製填充多邊形?
- 9. 如何用Python繪製多邊形?
- 10. 如何使用OpenCV繪製多邊形?
- 11. 如何用CGPath繪製多邊形?
- 12. 如何在SDL中繪製多邊形?
- 13. 如何用androidPlot庫繪製多邊形?
- 14. 如何使用iOS Quartz 2D繪圖繪製複雜的形狀?
- 15. glDrawElements繪製多邊形
- 16. d3 Javascript - 繪製多邊形
- 17. 繪製多邊形形狀的紋理
- 18. 在D3中繪製複雜的圖形
- 19. KineticJS - 繪製複雜的形狀
- 20. 複雜的多邊形區域
- 21. 查找一個複雜的多邊形
- 22. 分解複雜多邊形的算法
- 23. ImageJ如何複製一個多邊形
- 24. SVG中路徑與多邊形繪製的多邊形示例
- 25. 如何繪製n個邊的多邊形,m次
- 26. 用gg多邊形繪製矩形R
- 27. 覆蓋matplotlib.artist.Artist繪製複雜形狀
- 28. 在複雜平面上繪製圖形
- 29. 如何創建繪製多邊形的圖形對象?
- 30. OpenGL的:如何繪製三角形或多邊形平滑
這絕對會創建一個多邊形,但不是一個帶有洞的多邊形。 –
我不認爲我理解「洞」。我以爲你的意思是空洞的。正如我想象的那樣,洞的大小將取決於y2與y1的關係。 – Matt