Python學習筆記--形狀
參靠視頻:《Python數據可視化分析 matplotlib教程》鏈接:https://www.bilibili.com/video/av6989413/?p=6
所用的庫及環境:
IDE:Pycharm
Python環境:python3.7
Matplotlib: Matplotlib 1.11
Numpy: Numpy1.15.
形狀
- 前言
- 如何在一個圖形中畫一個填充好的形狀,比如說畫一個填充好的圓形,長方形,多邊形
- 代碼及效果圖
1 import numpy as np 2 import matplotlib.pyplot as plt 3 import matplotlib.patches as mpathes 4 5 fig,ax = plt.subplots() 6 xy1 = np.array([0.2,0.2]) 7 xy2 = np.array([0.2,0.8]) 8 xy3 = np.array([0.8,0.2]) 9 xy4 = np.array([0.8,0.8]) 10 #圓形 11 circle = mpathes.Circle(xy1,0.05) 12 ax.add_patch(circle) 13 #長方形 14 rect = mpathes.Rectangle(xy2,0.2,0.1,color='r') 15 ax.add_patch(rect) 16 #多邊形 17 polygon = mpathes.RegularPolygon(xy3,5,0.1,color='g') 18 ax.add_patch(polygon) 19 #橢圓形 20 ellipse = mpathes.Ellipse(xy4,0.4,0.2,color='y') 21 ax.add_patch(ellipse) 22 23 plt.axis('equal') 24 plt.grid() 25 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()
- 更多繪制圖案的方法請參考文檔:https://matplotlib.org/api/patches_api.html?highlight=patches#module-matplotlib.patches
- 結語:
感謝matplotlib提供的文檔,感謝麥子學院提供的視頻教學