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

如何为Matplotlib的hist2D二维直方图设置圆形外框?

Matplotlib笛卡尔坐标系下将二维直方图外框修改为圆形的实现方法

核心思路是对二维直方图的绘制结果添加圆形裁剪路径,无需修改原始分箱逻辑,也不用切换极坐标系,具体实现步骤如下:

  • 先导入依赖的补丁类:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
  • 保留原有绘图逻辑不变,额外添加圆形裁剪、隐藏坐标轴的代码即可:
# 假设x、y、m为你的原始数据
fig, ax = plt.subplots()
# 原有绘制二维直方图的代码完全不需要修改
hist_res = ax.hist2d(x, y, bins=200, weights=m)

# 创建和数据范围匹配的圆形裁剪补丁
# 若你的数据圆心不是(0,0),可修改第一个参数为实际圆心坐标
circle_patch = patches.Circle((0, 0), radius=3, transform=ax.transData)
# 给直方图对象设置裁剪路径
hist_res[3].set_clip_path(circle_patch)

# 隐藏所有坐标轴元素
ax.axis('off')
# 固定坐标轴范围贴合圆形边界
ax.set_xlim(-3, 3)
ax.set_ylim(-3, 3)
# 保持纵横比为1,避免圆形被拉伸变形
ax.set_aspect('equal')

plt.show()
  • 补充说明:如果你的数据圆形范围不是中心在原点、半径3,只需要对应修改Circle的圆心坐标、radius参数以及set_xlim、set_ylim的范围即可,其余逻辑无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:36:03