使用折线绘制圆
- 绘制几何图形中的圆形不仅可以通过类Circle实现,也可以通过折线实现。
- 调用实例方法plot()绘制的圆和调用类Circle绘制的圆在展示效果上有所区别。调用实例方法plot()绘制的圆没有覆盖坐标轴的绘图区域;而调用类Circle绘制的圆即使在填充颜色是白色的情况下,也会覆盖坐标轴的绘图区域。
- 调用类Circle绘制的圆是一个“补片”。这个“补片”是一个实实在在的具有颜色的填充区域。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Circle
fig, ax = plt.subplots(2, 2)
x = np.linspace(0, 2*np.pi, 500)
y1 = 2*np.cos(x)
y2 = 2*np.sin(x)
# subplot(221)
ax[0, 0].plot(y1, y2, color="cornflowerblue", lw=2)
ax[0, 0].set_xlim(-3, 3)
ax[0, 0].set_ylim(-3, 3)
# subplot(222)
rectangle = ax[0, 1].patch
rectangle.set_facecolor("gold")
ax[0, 1].plot(y1, y2, color="cornflowerblue", lw=2)
ax[0, 1].set_xlim(-3, 3)
ax[0, 1].set_ylim(-3, 3)
# 实现刻度线的变化量相同和坐标轴的长度相同
ax[0, 1].set_aspect("equal", "box")
# subplot(223)
rectangle = ax[1, 0].patch
rectangle.set_facecolor("palegreen")
ax[1, 0].plot(y1, y2, color="cornflowerblue", lw=2)
# 调整坐标轴的刻度线的变化量一致
ax[1, 0].axis("equal")
# subplot(224)
rectangle = ax[1, 1].patch
rectangle.set_facecolor("lightskyblue")
ax[1, 1].plot(y1, y2, color="cornflowerblue", lw=2)
# 调整坐标轴的显示范围及刻度线的位置
ax[1, 1].axis([-3, 3, -3, 3])
ax[1, 1].set_yticks(np.arange(-3, 4, 1))
ax[1, 1].axis("equal")
plt.subplots_adjust(left=0.1)
plt.show()