B站視頻:https://www.bilibili.com/video/av6989413/?p=6html
轉自:https://www.cnblogs.com/linblogs/p/9672769.htmlapi
import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpathes fig,ax = plt.subplots() xy1 = np.array([0.2,0.2]) xy2 = np.array([0.2,0.8]) xy3 = np.array([0.8,0.2]) xy4 = np.array([0.8,0.8]) #圓形 circle = mpathes.Circle(xy1,0.05) ax.add_patch(circle) #長方形 rect = mpathes.Rectangle(xy2,0.2,0.1,color='r') ax.add_patch(rect) #多邊形 polygon = mpathes.RegularPolygon(xy3,5,0.1,color='g') ax.add_patch(polygon) #橢圓形 ellipse = mpathes.Ellipse(xy4,0.4,0.2,color='y') ax.add_patch(ellipse) plt.axis('equal') plt.grid() plt.show()
- 相關函數介紹
- Circle()
- 文檔:https://matplotlib.org/api/_as_gen/matplotlib.patches.Circle.html#matplotlib.patches.Circle
- 簡介:在給定半徑的xy=(x,y)處建立真圓
- 屬性
- xy:圓形的中心(屬性名可省略)
- redius:圓形的半徑(屬性名可省略)
- 更多屬性詳見文檔
- 常見問題
- 問題:畫出來的圓形不是正圓,是橢圓
- 緣由:由於在繪圖時x,y軸的比例不是1:1
- 解決方法:使用函數axis屬性置位'equal’,經過改變軸限制來設置相等的縮放
- axis文檔:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.axis.html#matplotlib.pyplot.axis
- Rectangle()
- 文檔:https://matplotlib.org/api/_as_gen/matplotlib.patches.Rectangle.html#matplotlib.patches.Rectangle
- 簡介:在x,y座標處生成一個長方形,(x,y是長方形左下角的位置)
- 屬性
- xy:底部和左側的矩形座標(屬性名可省略)
- width:矩形寬度(屬性名可省略,注意高和寬的順序,第二個是寬)
- height:矩形高度(屬性名可省略,注意高和寬的順序,第三個是高)
- color :填充的顏色
- 更多屬性詳見文檔
- RegularPolygon()
- 文檔:https://matplotlib.org/api/_as_gen/matplotlib.patches.RegularPolygon.html#matplotlib.patches.RegularPolygon
- 簡介:以x,y座標生成多邊形
- 屬性
- xy:多邊形的中心(屬性名可省略)
- numVertices:頂點數,或者能夠叫作是邊數(屬性名可省略,注意位置)
- redus:多邊形半徑(屬性名可省略,注意位置)
- color : 填充的顏色
- 更多屬性詳見文檔
- Ellipse()
- 文檔:https://matplotlib.org/api/_as_gen/matplotlib.patches.Ellipse.html#matplotlib.patches.Ellipse
- 簡介:以xy爲中心生成一個橢圓
- 屬性
- xy:橢圓的中心
- width:橫軸的總長度,(直徑)
- height:垂直軸的總長度,(直徑)
- 更多屬性詳見文檔
- add_patch()
- 文檔:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.add_patch.html#matplotlib.axes.Axes.add_patch
- 簡介:把生成圖案繪製到畫布上,
- 屬性
- p:要添加圖案(就是建立圖案時的返回值)
- Circle()