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

Python Pandas绘制线性极坐标图:代码无错但不显示图的解决方法

问题原因与修改方案

你的代码没有给px.line_polar()指定极坐标的核心映射参数,Plotly无法自动识别哪列数据对应半径(r)、哪列对应角度(theta),所以无法生成正确的折线图。

修改后的完整代码

import pandas as pd
import plotly.express as px

data = pd.DataFrame({'value': [0, 20, 30, 20, 0, 10, 15, 10],
                     'bearing': range(0, 360, 45),
                     'compass': ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']})

# 指定半径、角度参数,同时设置罗盘式极坐标的方向与起始角度
fig = px.line_polar(
    data,
    r='value',          # 用value列作为极坐标的半径值
    theta='bearing',    # 用bearing列作为角度(度数)
    direction='clockwise',  # 角度顺时针递增(符合罗盘习惯)
    start_angle=90          # 起始角度设为90度,让N(0度)位于顶部
)

fig.show()

关键修改点说明

  • 必须显式指定r和theta参数:r对应极坐标的径向数值(你的value列),theta对应角度值(可以用bearing的度数,也可以直接用compass的方位字符串,比如theta='compass')。
  • 添加direction='clockwise'和start_angle=90:让极坐标的方向和起始位置匹配罗盘的常规显示(北在顶部,角度顺时针增加),如果不需要罗盘风格可以去掉这两个参数。
  • 移除无用导入:原代码里的matplotlib、numpy相关导入没有用到,可以删掉,简化代码。

如果想用罗盘方位字符串作为角度,也可以这样写:

fig = px.line_polar(
    data,
    r='value',
    theta='compass',
    direction='clockwise',
    start_angle=90
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:07:07