Matplotlib极坐标系下按角度绘制负载传感器数据散点图的问题
解决Matplotlib极坐标散点图角度参数不匹配的问题
嘿,我懂你现在的困扰——你想用角度(0-360度)直接作为散点的参数,但Matplotlib的极坐标scatter函数其实不认角度值(度),它只认弧度值,这就是你角度显示不对的核心原因!
别担心,只需要加一步简单的转换就搞定了,具体操作如下:
- 导入
math模块,用math.radians()函数把你的角度值(度)转换成弧度值 - 把原来的角度参数替换成转换后的弧度值,你之前设置的极轴规则(以北为0度起点、刻度显示千克等)都可以保留
修改后的完整代码如下:
import matplotlib.pyplot as plt import math # 示例参数:45度方向,20千克 degrees = 45 kilograms = 20 ax = plt.subplot(polar=True) # 关键:把角度从度转换成弧度传入scatter ax.scatter(math.radians(degrees), kilograms) # 保留你原本的极轴配置 ax.set_theta_zero_location('N') ax.set_rticks([10, 20]) # 减少径向刻度数量 ax.set_rmax(30) plt.show()
这样修改后,math.radians(0)对应正北(第一个传感器的90度区域),math.radians(90)对应正东(第二个传感器区域),以此类推,完全匹配四个传感器各占圆周1/4的布局。负载均衡时把kilograms设为0,散点就会落在中心,完美贴合你的需求!
内容的提问来源于stack exchange,提问作者luxon
相关产品推荐
相关产品推荐

