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

Matplotlib极坐标轴未显示数据问题求助

解决Matplotlib极坐标图直线不显示的问题

嘿,我来帮你排查一下问题!你遇到的核心问题有两个,都是Matplotlib极坐标的常见坑:

1. 角度单位搞错了——Matplotlib极坐标默认用弧度,不是度数

Matplotlib的极坐标轴中,plot函数接收的theta参数默认是弧度值,而不是你直接传入的105度。105度转换成弧度大概是105 * π / 180 ≈ 1.83,但如果你直接传105(度数),这个数值远大于2π(约6.28,对应360度),相当于绕了十几圈,自然不会在当前视图里显示出来。

2. 单个点画不出直线——需要传入两个端点的坐标

你用ax1.plot(theta1, R1, lw=2.5)只传入了一组坐标,这在极坐标里只会绘制一个点(而且默认没有标记样式,所以完全看不到)。如果要画一条从原点延伸到(105°, 1.0)的直线,需要给plot传入两个点的theta和R值:一个是原点(0弧度, 0),另一个是目标位置(转换后的弧度, 1.0)。

修复后的示例代码

这里是可以正常运行的代码,你可以参考:

import matplotlib.pyplot as plt
import numpy as np

# 创建画布和极坐标子图
fig = plt.figure()
ax1 = fig.add_subplot(111, polar=True)

# 定义你的角度和半径,把度数转成弧度
theta1_deg = 105
theta1_rad = np.deg2rad(theta1_deg)  # 转换函数帮你搞定单位转换
R1 = 1.0

# 绘制从原点到目标位置的直线:传入两个端点的theta和R数组
ax1.plot([0, theta1_rad], [0, R1], lw=2.5, color='blue')

# 可选:添加角度刻度标签,方便你确认105度的位置(在90°和135°之间)
ax1.set_xticks(np.deg2rad([0, 45, 90, 135, 180]))
ax1.set_xticklabels(['0°', '45°', '90°', '135°', '180°'])

plt.show()

运行这段代码后,你就能在极坐标图的105度位置看到一条从原点延伸到半径1.0的蓝色粗直线啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:29:08