当前位置:   article > 正文

Python绘图-13常见数学图形绘制_python plt画矩形

python plt画矩形

今天我们使用matplotlib库绘制数学图形。

13.1绘制矩形

13.1.1图像呈现

13.1.2绘图代码

  1. import matplotlib.pyplot as plt
  2. import matplotlib.patches as patches
  3. fig, ax = plt.subplots()
  4. # 创建一个矩形,参数为(x, y, width, height)
  5. rect = patches.Rectangle((0.1, 0.1), 0.5, 0.8, linewidth=1, edgecolor='r', facecolor='none')
  6. # 将矩形添加到子图中
  7. ax.add_patch(rect)
  8. plt.xlim(0, 1)
  9. plt.ylim(0, 1)
  10. plt.show()

13.2绘制多边形

13.2.1图像呈现

 

13.2.2绘图代码

  1. import matplotlib.pyplot as plt
  2. import matplotlib.patches as patches
  3. import numpy as np
  4. # 创建一个新的图形和坐标轴
  5. fig, ax = plt.subplots()
  6. # 定义多边形的顶点坐标
  7. vertices = np.array([[0.1, 0.1], [0.4, 0.8], [0.8, 0.1], [0.6, 0.5]])
  8. # 创建一个多边形对象
  9. polygon = patches.Polygon(vertices, closed=True, edgecolor='black', facecolor='none')
  10. # 将多边形添加到坐标轴上
  11. ax.add_patch(polygon)
  12. # 设置坐标轴的限制以适应多边形
  13. ax.set_xlim(min(vertices[:, 0]) - 0.1, max(vertices[:, 0]) + 0.1)
  14. ax.set_ylim(min(vertices[:, 1]) - 0.1, max(vertices[:, 1]) + 0.1)
  15. # 显示图形
  16. plt.show()

13.3根据圆心和半径绘制图形

13.3.1图像呈现

13.3.2绘图代码

  1. import matplotlib.pyplot as plt
  2. import matplotlib.patches as patches
  3. # 定义圆心和半径
  4. center = (0.5, 0.5) # 圆心坐标 (x, y)
  5. radius = 0.3 # 半径
  6. # 创建一个新的图形和坐标轴
  7. fig, ax = plt.subplots()
  8. # 创建一个圆形对象
  9. circle = patches.Circle(center, radius, edgecolor='black', facecolor='none')
  10. # 将圆形添加到坐标轴上
  11. ax.add_patch(circle)
  12. # 设置坐标轴的限制以适应圆形
  13. ax.set_xlim(center[0] - radius - 0.1, center[0] + radius + 0.1)
  14. ax.set_ylim(center[1] - radius - 0.1, center[1] + radius + 0.1)
  15. # 设置坐标轴为等比例,这样圆形不会变形
  16. ax.set_aspect('equal', 'box')
  17. # 显示图形
  18. plt.show()

13.4绘制椭圆形

13.4.1图像呈现

13.4.2绘图代码

  1. import matplotlib.pyplot as plt
  2. import matplotlib.patches as patches
  3. # 定义椭圆的中心、宽度和高度
  4. center = (0.5, 0.5) # 椭圆中心坐标 (x, y)
  5. width = 0.4 # 椭圆的宽度
  6. height = 0.8 # 椭圆的高度
  7. # 创建一个新的图形和坐标轴
  8. fig, ax = plt.subplots()
  9. # 创建一个椭圆形对象
  10. ellipse = patches.Ellipse(center, width, height, edgecolor='black', facecolor='none')
  11. # 将椭圆形添加到坐标轴上
  12. ax.add_patch(ellipse)
  13. # 设置坐标轴的限制以适应椭圆形
  14. ax.set_xlim(center[0] - width / 2 - 0.1, center[0] + width / 2 + 0.1)
  15. ax.set_ylim(center[1] - height / 2 - 0.1, center[1] + height / 2 + 0.1)
  16. # 设置坐标轴为等比例,以确保椭圆形不被拉伸
  17. ax.set_aspect('equal', 'box')
  18. # 显示图形
  19. plt.show()

13.5 绘制弧线

13.5.1图像呈现

13.5.2绘图代码

  1. import matplotlib.pyplot as plt
  2. import matplotlib.patches as patches
  3. # 创建一个新的图形和坐标轴
  4. fig, ax = plt.subplots()
  5. # 定义弧线的参数
  6. center = (0.5, 0.5) # 圆心坐标 (x, y)
  7. width = 0.2 # 弧线的宽度
  8. height = 0.4 # 弧线的高度
  9. angle = 0 # 起始角度(相对于x轴的逆时针旋转角度)
  10. theta = 180 # 跨越的角度(以度为单位)
  11. # 创建一个弧线对象
  12. arc = patches.Arc(center, width, height, angle=angle, theta1=0, theta2=theta, lw=2, color='blue', fill=False)
  13. # 将弧线添加到坐标轴上
  14. ax.add_patch(arc)
  15. # 设置坐标轴的限制以适应弧线
  16. ax.set_xlim(center[0] - width / 2, center[0] + width / 2)
  17. ax.set_ylim(center[1] - height / 2, center[1] + height / 2)
  18. # 设置坐标轴为等比例,以确保弧线不被拉伸
  19. ax.set_aspect('equal', adjustable='box')
  20. # 显示图形
  21. plt.show()

13.6绘制线段

13.6.1图像呈现

13.6.2绘图代码

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. # 定义线段的起点和终点
  4. start_point = (0, 0)
  5. end_point = (5, 3)
  6. # 使用matplotlib的plot函数来绘制线段
  7. x = np.array([start_point[0], end_point[0]])
  8. y = np.array([start_point[1], end_point[1]])
  9. plt.plot(x, y, marker='o') # marker='o' 用于在起点和终点处添加圆圈标记
  10. # 设置坐标轴的范围,以确保线段完全可见
  11. plt.xlim(min(x) - 1, max(x) + 1)
  12. plt.ylim(min(y) - 1, max(y) + 1)
  13. # 显示图形
  14. plt.show()

13.7绘制多条连续的线段

13.7.1图像呈现

13.7.2绘图代码

  1. import matplotlib.pyplot as plt
  2. # 定义两组点的坐标,每组点将连接成一条线段
  3. points1 = [(0, 0), (1, 1), (2, 0)]
  4. points2 = [(2, 0), (3, -1), (4, 0)]
  5. # 提取x和y坐标
  6. x1, y1 = zip(*points1)
  7. x2, y2 = zip(*points2)
  8. # 使用plot函数绘制两条不连续的线段
  9. plt.plot(x1, y1, marker='o', label='Segment 1')
  10. plt.plot(x2, y2, marker='o', label='Segment 2')
  11. # 添加图例
  12. plt.legend()
  13. # 设置坐标轴的范围,以确保线段完全可见
  14. plt.xlim(min(min(x1, x2)) - 1, max(max(x1, x2)) + 1)
  15. plt.ylim(min(min(y1, y2)) - 1, max(max(y1, y2)) + 1)
  16. # 显示图形
  17. plt.show()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/742944
推荐阅读
相关标签
  

闽ICP备14008679号