更新
我完全忘记了 tick_params 中的 pad 参数。 @ImportanceOfBeingErnest’s answer 利用了这一点,更适合提出的问题。
不过,我将把我的答案留在这里作为一个例子,说明如果无法通过thick_params 等通用方法实现相同的目标。
我不知道实现这一点的官方方法。但是你可以硬编码它。
如果你只想在里面有刻度,你只需要运行:
ax.tick_params(direction="in")
现在,要在绘图区域内移动标签,您需要为刻度添加填充,如下所示:
TICK_PADDING = -10
xticks = [*ax.xaxis.get_major_ticks(), *ax.xaxis.get_minor_ticks()]
yticks = [*ax.yaxis.get_major_ticks(), *ax.yaxis.get_minor_ticks()]
for tick in (*xticks, *yticks):
tick.set_pad(TICK_PADDING)
您可能必须为 x 和 y 刻度使用不同的填充。在这种情况下,您应该:
X_TICK_PADDING = -10
Y_TICK_PADDING = -20
xticks = [*ax.xaxis.get_major_ticks(), *ax.xaxis.get_minor_ticks()]
yticks = [*ax.yaxis.get_major_ticks(), *ax.yaxis.get_minor_ticks()]
for tick in xticks:
tick.set_pad(X_TICK_PADDING)
for tick in yticks:
tick.set_pad(Y_TICK_PADDING)
它不漂亮,但它有效。 如果这是你想要的,请告诉我。