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

箱线图绘制异常求助:仅显示F4组,Km与Liquid组缺失

Fix for BoxPlot Not Showing All Groups (Km and Liquid) in Matplotlib

我来帮你搞定这个箱线图的问题,你遇到的情况主要是刻度设置错误、切片索引遗漏,加上单数据点的箱线图默认显示不明显导致的,一步步给你修正:

问题拆解&解决要点

  • 你的plt.xticks用法有误:第一个参数需要指定箱体的位置(对应第1、2、3个箱体),传空列表会导致刻度不显示,甚至影响箱体渲染位置。
  • 切片时跳过了索引470:df2['Counts'][471:494]会漏掉第470行的数据,应该改成470:494。
  • 单个数据点的Liquid组:matplotlib默认对单值数据的箱线图只显示极小的点,几乎看不到,需要调整参数增强显示效果。

修正后的完整代码

import matplotlib.pyplot as plt

# 修正切片索引,同时转成列表避免Series对象的潜在问题
data = [
    df2['Counts'][0:470].tolist(),
    df2['Counts'][470:494].tolist(),
    df2['Counts'][495:].tolist()
]

fig1, ax4 = plt.subplots()
ax4.set_title('Furter vs Krum serum')

# 正确设置刻度:指定箱体位置+对应标签
plt.xticks([1, 2, 3], ['F4','Km','Liquid'])

# 绘制箱线图,添加参数让单数据点更醒目
ax4.boxplot(
    data,
    showmeans=True,  # 显示均值(单数据点就是它本身)
    meanprops={'marker':'o', 'markeredgecolor':'red', 'markersize':8}  # 自定义均值点样式
)

plt.show()

额外验证步骤

如果Km组还是没显示,先打印各组数据长度确认数据存在:

print("F4组数据量:", len(data[0]))
print("Km组数据量:", len(data[1]))
print("Liquid组数据量:", len(data[2]))

确保Km组有24个数据点(494-470=24),Liquid组至少有1个数据点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:57:50