B站视频:https://www.bilibili.com/video/av6989413/?p=6
转自:https://www.cnblogs.com/linblogs/p/9672769.html
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:要添加图案(就是创建图案时的返回值)
|