代码如下:
import numpy as np
import matplotlib.pyplot as plt
plt.axes(projection='polar')
r = 2
radians = np.arange(0, (2 * np.pi), 0.01)
for theta in radians:
plt.polar(theta, r, '.g')
plt.show()
各个语句的解释: plt.axes(projection='polar') :将坐标轴投影为极坐标,即在极坐标系下绘图。 r = 2 :设定圆形的半径为2 。 radians = np.arange(0, (2 * np.pi), 0.01) :设置弧度梯度。 plt.polar(theta, r, '.g') :绘制所有符合点的图像。 plt.show() :显示图像。
最终得到的图像如下: 上述语句plt.polar(theta, r, '.g') 中的第三个参数'.g' 可能大家会比较疑惑。这里该参数的关键字为fmt ,是英文单词format 的缩写,意为以一个特定的格式向该画图函数中传递参数。并且传递形式为:
fmt = '[marker][line][color]'
但是这里要注意一点,fmt 这个关键字需要省略。如果加上就会报错。我们这里的'.g' 即表示以绿色点来标记需要绘制的点。最后的附录会给出所有用户可以使用的参数。
注意:plt.polar() 该函数事实上绘制的是在极坐标系下的一些离散的点。
之所以我们之前能够绘制一个完整的圆形,在于我们取的弧度值radians 值非常密集,很多点绘制在一起,互相重叠形成了圆形的视觉效果,实际上我们绘制的是圆环上的一个个点。为了证明我们的说法,请看下面的代码:
import numpy as np
import matplotlib.pyplot as plt
plt.axes(projection='polar')
r = 2
radians = np.arange(0, (2 * np.pi), 0.1)
for theta in radians:
plt.polar(theta, r, '.g')
plt.show()
最终得到的图像如下: 不难发现,当我们降低radians 参数值的个数时,我们得到了在圆环上的分开的离散的点。进一步我们可以观察一下,开始我们使用描点绘制圆形图像时,最终得到的图像锯齿比较严重,这是因为我们取得radians 参数的个数不足够大,为了使绘制出的圆形更为平滑,我们可以将各个点之间的间隔设置的更小,比如使用如下语句来设定radians 值。
radians = np.arange(0, (2 * np.pi), 0.0001)
最终得到的图像如下: 当然,点取的太过密集势必会拖慢我们绘图的速度,所以实际操作时需要自行设定合适的取值。
附录: 上述图片引用与Matplotlib官网(2021-11-30号版本)(超链接点击跳转)。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
|