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

Python中箱线图的连续X轴刻度设置方法

调整X轴为等间距连续刻度的方法

要将当前仅显示箱线图对应X值的轴改为等间距连续刻度,只需手动设置X轴的刻度范围与刻度点即可,具体操作如下:

步骤说明

  • 确定X轴的完整范围:涵盖箱线图的X值、预测点的X值
  • 生成等间距的刻度序列
  • 将刻度序列应用到坐标轴上

修改后的完整代码

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

# Dummy x-axis values
variable = [1.6, 1.8, 2.0, 2.2, 2.5]
# Dummy data
dummy1 = np.random.rand(10, len(variable))
# Plot dummy data as box plots
ax.boxplot(dummy1, positions=variable, notch=True, patch_artist=True)
# Fit data with a quadratic polynomial
fit = np.polyfit(variable, np.nanmedian(dummy1, axis=0), 2)
# More dummy data
dummy2 = np.random.rand(10, 1)
pred_x = np.nanmedian(dummy2)
# Make a prediction
prediction = fit[0] * dummy2 ** 2 + fit[1] * dummy2 + fit[2]
pred_y = np.nanmedian(prediction)
# Plot the prediction median as a star
ax.plot(pred_x, pred_y, '*')
# Get the lowest and highest x-axis values
min_x = min(variable[0], pred_x)
max_x = max(variable[-1], pred_x)
# Fine-grain values for the fit plot
x = np.linspace(min_x, max_x, 1000)
y = fit[0] * x ** 2 + fit[1] * x + fit[2]
# Plot the fit
ax.plot(x, y, '--')

# 设置等间距连续刻度
# 生成步长0.1的等间距刻度,可根据需求调整步长
xticks = np.arange(np.floor(min_x*10)/10, np.ceil(max_x*10)/10 + 0.1, 0.1)
ax.set_xticks(xticks)
# 可选:设置刻度标签保留1位小数
ax.set_xticklabels([f'{tick:.1f}' for tick in xticks])

ax.grid(True)
plt.show()

关键代码解释

  1. 确定X轴范围:通过min_x和max_x覆盖所有需展示的X值(箱线图位置、预测点),确保刻度范围完整。
  2. 生成等间距刻度:用np.arange生成指定步长的连续刻度,np.floor和np.ceil让刻度从整十分位开始/结束,视觉更规整。
  3. 应用刻度:ax.set_xticks()设置刻度位置,ax.set_xticklabels()可选优化标签显示格式。

如果想让matplotlib自动生成适配的等间距刻度,可简化为以下代码,无需手动生成刻度序列:

ax.set_xlim(min_x - 0.1, max_x + 0.1)  # 轻微扩大范围避免内容贴边
ax.locator_params(axis='x', nbins=10)  # 指定X轴刻度数量,自动生成等间距刻度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:18:11