Matplotlib plt.polar绘制圆形

Matplotlib plt.polar绘制圆形,第1张

Matplotlib plt.polar绘制圆形

代码如下:

# -*- coding:utf-8 -*-
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号版本)(超链接点击跳转)。

码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5624794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存