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

如何在极坐标等高线图中绘制变量随时间变化的数值?

解决极坐标情感得分可视化问题

你的代码存在两个核心问题:

  • emotion_list长度(7个)与角度数组rad_arr长度(约51个)不匹配,导致网格维度混乱
  • 自定义func的逻辑不符合目标图的可视化需求,目标图应该是每个角度区间对应一个情感得分,用颜色填充扇区

以下是修正后的代码,能实现类似目标图的效果:

import numpy as np
import matplotlib.pyplot as plt

emotion_list = [0.0, 0.2, 0.3, 0.3, 0.0, 0.2, 0.0]
n_emotions = len(emotion_list)

# 生成闭合的角度区间(从0到2π,共n_emotions+1个点)
theta = np.linspace(0, 2 * np.pi, n_emotions + 1)
# 生成径向网格(从中心0到最大情感得分,细分100份保证平滑)
r = np.linspace(0, max(emotion_list), 100)

# 创建极坐标网格
R, Theta = np.meshgrid(r, theta)

# 为每个角度区间赋值对应的情感得分
values = np.zeros_like(R)
for i in range(n_emotions):
    values[i, :] = emotion_list[i]

# 绘制极坐标填充图
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
# 使用contourf填充,levels设置为情感数量保证每个扇区对应单一颜色
contour = ax.contourf(Theta, R, values, cmap='Spectral_r', levels=n_emotions)

# 优化显示效果
ax.set_rmax(max(emotion_list))  # 设置径向最大刻度为最大情感得分
plt.colorbar(contour, ax=ax, shrink=0.8)  # 添加颜色条对应情感得分
plt.show()

关键修正点:

  • 统一角度数量与情感得分数量,将角度划分为与emotion_list长度一致的扇区
  • 构建径向网格并为每个扇区赋值对应的情感得分,确保颜色填充与情感值对应
  • 添加颜色条直观展示得分与颜色的映射关系

内容的提问来源于stack exchange,提问作者Inge Aeronáutico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:06:24