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

使用MultipleLocator时如何将Matplotlib X轴限制在100%而非超出至105%

解决X轴超出100%的问题

直接在设置刻度定位器后,手动指定X轴的右边界为100即可,既能保留5为步长的刻度,又能限制轴范围不超过100%。

修改后的完整代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib as mpl

fig, ax = plt.subplots(figsize=(10, 5))
np.random.seed(1)
df = pd.DataFrame(
    {
        "x": np.random.randint(0, 4, size=(1000)),
        "y": np.random.randint(0, 4, size=1000),
    }
)
pd.crosstab(df["x"], df["y"], normalize="columns").mul(100).T.plot.barh(
    stacked=True, ax=ax
)
ax.xaxis.set_major_locator(mpl.ticker.MultipleLocator(base=5))
# 强制设置X轴右边界为100
ax.set_xlim(right=100)
plt.show()

原理说明

MultipleLocator会自动调整坐标轴范围,确保最后一个刻度是步长(此处为5)的整数倍。即便数据最大值是100,Matplotlib仍可能额外扩展一个刻度到105以满足定位器规则。通过ax.set_xlim(right=100)手动锁定右边界,就能截断多余刻度,让X轴停在100%。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:57:35