使用模块化patches绘制几何图形
圆的实现方法
# 导入包
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
import numpy as np
# 绘图
fig,ax = plt.subplots(2,2)
# 子图(221)
circle=Circle((2,2),radius=2,facecolor='white',edgecolor='cornflowerblue')
# (2,2)圆心坐标,radius圆的半径,facecolor圆的填充颜色,edgecolor圆的轮廓颜色
ax[0,0].add_patch(circle)
# 调用实例方法add_patch()将实例circle以参数值形式添加到坐标轴实例ax[0,0]中,从而完成指定位置和半径的圆的绘制
ax[0,0].set_xlim(-1,5)
ax[0,0].set_ylim(-1,5)
# 调用实例调整x,y轴的坐标轴显示范围
# 子图(222)
rectangle=ax[0,1].patch
rectangle.set_facecolor('gold')
# 调用rectangle的实例方法set_facecolor()设置子区坐标轴的背景色
circle=Circle((2,2),radius=2,facecolor='white',edgecolor='cornflowerblue')
ax[0,1].add_patch(circle)
ax[0,1].set_xlim(-1,5)
ax[0,1].set_ylim(-1,5)
ax[0,1].set_aspect('equal','box')
# (221)子图中,圆呈现出椭圆形,是由于x,y轴的刻度线的变化量不同,采用ax[0,1].set_aspect('equal','box')使其相同
# 子图(223)
rectangle=ax[1,0].patch
# 通过ax.patch语句来获得rectangle的实例
rectangle.set_facecolor('palegreen')
circle=Circle((2,2),radius=2,facecolor='white',edgecolor='cornflowerblue')
ax[1,0].add_patch(circle)
ax[1,0].axis('equal')
# 相比(222)将刻度线的变化量进行调整,使之保持相同的增量,不进行x,y轴的坐标轴显示范围的操作
# 子图(224)
rectangle=ax[1,1].patch
rectangle.set_facecolor('lightskyblue')
circle=Circle((2,2),radius=2,facecolor='white',edgecolor='cornflowerblue')
ax[1,1].add_patch(circle)
ax[1,1].axis([-1,5,-1,5]) # 调整x,y轴的坐标轴显示范围
ax[1,1].set_yticks(np.arange(-1,6,1)) # 调整刻度线的位置
ax[1,1].axis('equal') # 调整刻度线的变化量
plt.subplots_adjust(left=0.1) # 调整子图位置
plt.show()
结果如下:
有关plt.subplots_adjust(left=0.1)
可以看【Python】matplotlib中pyplot.subplots_adjust参数含义的理解
椭圆的实现方法
# 导入包
import matplotlib.pyplot as plt
from matplotlib.patches import E