python matplotlib画形状(矩形、圆等)

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:要添加图案(就是创建图案时的返回值)

转载于:https://www.cnblogs.com/zoe-chang/p/11389838.html

你可能感兴趣的:(python matplotlib画形状(矩形、圆等))