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

如何在Seaborn中获取自定义坐标列表绘制的箱线图的中位数数值

获取边缘箱线图中位数的两种实用方法

方法一:直接计算筛选后数据的中位数

Seaborn箱线图的中位数计算逻辑和numpy/pandas的中位数计算完全一致,所以直接对你手里的xValues和yValues计算即可,简单高效。

示例代码:

import numpy as np

# 计算x轴箱线图的中位数
x_median = np.median(xValues)
# 计算y轴箱线图的中位数
y_median = np.median(yValues)

print(f"x轴中位数:{x_median}")
print(f"y轴中位数:{y_median}")

如果xValues是pandas Series类型,也可以用xValues.median(),结果完全相同。

方法二:从已绘制的箱线图对象中提取数值

如果你想从生成的JointGrid图里直接获取中位数,可以通过边缘轴的绘图元素提取。你设置的珊瑚色中位数线是唯一标识,能快速定位到对应数据。

示例代码:

import matplotlib.pyplot as plt

# 提取顶部x轴边缘箱线图的中位数
top_ax = g.ax_marg_x
# 获取轴上所有绘图元素
x_box_elements = top_ax.get_children()
# 筛选出你设置的珊瑚色中位数线
x_median_line = [line for line in x_box_elements if isinstance(line, plt.Line2D) and line.get_color() == 'coral'][0]
# 提取中位数数值(中位数线的y坐标即为数值)
x_median = x_median_line.get_ydata()[0]

# 提取右侧y轴边缘箱线图的中位数
right_ax = g.ax_marg_y
y_box_elements = right_ax.get_children()
y_median_line = [line for line in y_box_elements if isinstance(line, plt.Line2D) and line.get_color() == 'coral'][0]
# 提取中位数数值(中位数线的x坐标即为数值)
y_median = y_median_line.get_xdata()[0]

print(f"x轴中位数:{x_median}")
print(f"y轴中位数:{y_median}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:20:22