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
相关产品推荐
相关产品推荐

