You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制径向变化、角度恒定的特殊图形

实现径向变化的嵌套圆环绘图

首先修正你代码里的语法问题:NumPy中数组间的乘法直接用*即可,.*是MATLAB的写法,Python里不支持。

接下来,要绘制类似嵌套圆环的效果,我们可以利用Matplotlib的极坐标绘图功能,将func作为每个圆环的颜色(或粗细)属性,每个圆环对应一个径向值rho,角度覆盖0到2π。具体实现如下:

import numpy as np
import matplotlib.pyplot as plt

# 定义参数
a = 0.819 * 10**-3
b = 2.73 * 10**-3
Vo = 11.27

# 生成径向变量rho(减少采样数量避免圆环过于密集)
rho = np.linspace(0.0645, 0.215, 20)
# 计算func值
func = (Vo / np.log(b/a)) * (1 / rho)

# 创建极坐标画布
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})

# 遍历每个rho和对应的func值,绘制嵌套圆环
for r, val in zip(rho, func):
    theta = np.linspace(0, 2*np.pi, 1000)
    # 固定径向值r,角度遍历0到2π,颜色由func值映射
    ax.plot(theta, np.full_like(theta, r), color=plt.cm.viridis(val / func.max()), linewidth=2)

# 添加颜色条对应func值
sm = plt.cm.ScalarMappable(cmap='viridis', norm=plt.Normalize(vmin=func.min(), vmax=func.max()))
sm.set_array([])
fig.colorbar(sm, label='func值')

# 调整显示
ax.set_title('径向按func变化的嵌套圆环', y=1.1)
plt.show()

关键说明:

  • 调整rho的采样数量可以控制圆环的疏密程度,按需修改即可。
  • 如果需要让圆环粗细随func变化,只需将linewidth设置为与val相关的表达式,比如linewidth=val * 0.5。

如果你的需求是固定角度、径向按func变化绘制射线(视觉上也会有辐射状嵌套效果),可以改用以下代码:

import numpy as np
import matplotlib.pyplot as plt

a = 0.819 * 10**-3
b = 2.73 * 10**-3
Vo = 11.27

# 生成多个固定角度
thetas = np.linspace(0, 2*np.pi, 20)
# 生成径向变量rho
rho = np.linspace(0.0645, 0.215, 1000)
func = (Vo / np.log(b/a)) * (1 / rho)

fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})

for theta in thetas:
    # 固定角度,径向坐标为func值
    ax.plot(np.full_like(rho, theta), func, color=plt.cm.viridis(theta/(2*np.pi)), linewidth=2)

ax.set_title('角度恒定、径向按func变化的射线', y=1.1)
plt.show()

内容的提问来源于stack exchange,提问作者lub2354

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:43:09