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

Pandas绘制箱线图与折线图,折线起始位置异常问题求助

解决折线从原点出发的箱线图+折线图问题

我懂你想要的效果:折线从(0,0)原点开始,然后衔接每个箱线图对应的均值点对吧?咱们可以通过以下几步调整你的现有代码:

步骤1:构造带原点的均值数据

首先得给均值系列手动加一个(0,0)的起点数据,这样折线绘图时就会从原点开始。假设你的DataFrame列名是k_e的不同取值,代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 确保数据是浮点型(你的原有代码)
df = df.astype(float)

# 创建带原点的均值序列:先加(0,0),再拼接原数据的均值
origin_mean = pd.Series([0], index=[0])
full_mean_series = pd.concat([origin_mean, df.mean()])

步骤2:对齐折线与箱线图的x轴

箱线图默认的x轴位置是从1开始(对应第一列),而我们添加的原点x位置是0,所以要手动指定箱线图的位置,让它和折线的x轴完美匹配:

_, ax = plt.subplots()

# 绘制折线:用带原点的均值序列,自动从(0,0)出发
full_mean_series.plot(ax=ax, marker='o', label='Mean')

# 绘制箱线图:指定每个箱线的x位置为1到列数,和折线的x轴对齐
df.boxplot(showfliers=False, ax=ax, positions=range(1, len(df.columns)+1))

# 调整x轴刻度与标签:显示原点和原k_e列名
ax.set_xticks(range(0, len(df.columns)+1))
ax.set_xticklabels([0] + list(df.columns))

# 可选:添加图例、坐标轴标签美化
ax.legend()
ax.set_xlabel('k_e')
ax.set_ylabel('Value')
plt.show()

额外说明

  • 如果你的k_e列名是字符串类型,只需要把ax.set_xticklabels([0] + list(df.columns))里的0换成你想要的原点标签(比如'Origin')就行。
  • 用positions参数固定箱线图的x位置是关键,这样能保证它和折线的x轴刻度完全对应,不会出现错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:09:07