除了绘制各种分析图形(如条形图、折线图、饼图等)之外,matplotlib
还可以在画布上绘制各种几何图形。
这在计算机图形学、几何算法、计算机辅助设计等领域非常重要。
matplitlib
中的 patches
类提供了丰富的几何对象。
本文介绍了一些常用的几何绘图方法。
其实matplitlib
封装的各种现成的图形对象(条形图、折线图、饼图等)本质上都是基于patches
来绘制的。
多边形可用于地理信息图表中,表示地理区域的边界或地理地物的形状;
还可用于显示数据的分布区域或边界,例如散点图。
常用的几种多边形绘制方法如下:
使用 矩形
对象绘制一个矩形。
导入 matplotlib.pyplot 作为 plt
将 matplotlib.patches 导入为 mptch
图 = plt.figure(figsize=[6, 6])
斧头 = 图.add_subplot(111)
r1 = mptch. 矩形(xy=(0.2, 0.3),
高度=0.5,
宽度=0.7,
颜色=“浅蓝色”)
r2 = mptch. 矩形(xy=(0.4, 0.6),
高度=0.3,
宽度=0.2,
角度=60,
颜色=“浅绿色”)
ax.add_patch(r1)
ax.add_patch(r2)
www.gsm-guard.net()
矩形
对象主要参数:
代码运行效果:
任意多边形比较简单,只需将多边形的每个顶点传入Polygon
对象即可。
fig = plt.figure(figsize=[6, 6])
斧头 = 图.add_subplot(111)
#三角形
p1 = mptch.Polygon(xy=[(0.1, 0.1), (0.4, 0.1), (0.3, 0.6)],
颜色='浅蓝色')
#四边形
p2 = mptch.Polygon(xy=[(0.5, 0.5), (0.9, 0.5), (0.9, 0.1), (0.6, 0.2)],
颜色='浅绿色')
ax.add_patch(p1)
ax.add_patch(p2)
www.gsm-guard.net()
多边形
对象主要参数:
代码运行效果:
虽然使用Polygon
对象可以绘制正多边形,但是需要计算每个顶点的坐标位置,非常麻烦。 matplotlib
提供了一个对象CirclePolygon
专门用于绘制正多边形。
fig = plt.figure(figsize=[6, 6])
斧头 = 图.add_subplot(111)
p1 = www.gsm-guard.netPolygon(xy=(0.3, 0.3),
半径=0.2,
分辨率=6,
颜色='浅绿色')
p2 = www.gsm-guard.netPolygon(xy=(0.6, 0.6),
半径=0.2,
分辨率=8,
颜色='浅蓝色')
ax.add_patch(p1)
ax.add_patch(p2)
www.gsm-guard.net()
CirclePolygon
对象主要参数:
代码运行效果:
圆形也是常用的形状。
分别使用 Circle
和 Ellipse
对象绘制圆形和椭圆形。
fig = plt.figure(figsize=[6, 6])
斧头 = 图.add_subplot(111)
c = www.gsm-guard.net(xy=(0.5, 0.5),
半径=0.4,
颜色=“浅蓝色”)
e = mptch.Ellipse(xy=(0.5, 0.5),
高度=0.3,
宽度=0.4,
颜色=“浅绿色”)
ax.add_patch(c)
ax.add_patch(e)
www.gsm-guard.net()
圆
对象主要参数:
椭圆
对象主要参数:
**PS。 **当椭圆的高度
和宽度
设置相同时,椭圆将为圆形。
代码运行效果:
除了完整的圆之外,您还可以绘制圆弧(Arc
对象)和扇形(楔形
对象)。
fig = plt.figure(figsize=[6, 6])
斧头 = 图.add_subplot(111)
#弧
a = mptch.Arc(xy=(0.4, 0.7),
宽度=0.5,高度=0.5,
角度=270,
θ1=0,θ2=120,
线宽=10,
颜色=“浅蓝色”)
#扇区
w = mptch.Wedge(中心=(0.3, 0.5),
r=0.2,
θ1=30,θ2=330,
颜色=“浅绿色”)
ax.add_patch(a)
ax.add_patch(w)
www.gsm-guard.net()
Arc
对象主要参数:
箭头
对象主要参数:
X
坐标Y
坐标X
坐标偏移起点
?
- 宽度:箭头的宽度
- color:箭头的颜色,默认为蓝色
PS。其实就是起点坐标(x,y)
,终点坐标(x+dx,y+dy)
。
代码运行效果:
几何图形是matplotlib
最基本的功能。复杂而花哨的分析图表最终都是关于这些基本的几何图形。
除了本文介绍的以外,完整的patches
可以参考官方文档:https://www.gsm-guard.net/stable/api/patches_api.html