在Matplotlib中更改轴线的长度

9
我正在尝试更改matplotlib绘图轴的显示长度。这是我当前的代码:
import matplotlib.pyplot as plt
import numpy as np

linewidth = 2
outward = 10
ticklength = 4
tickwidth = 1

fig, ax = plt.subplots()

ax.plot(np.arange(100))

ax.tick_params(right="off",top="off",length = ticklength, width = tickwidth, direction = "out")
ax.spines["top"].set_visible(False), ax.spines["right"].set_visible(False)

for line in ["left","bottom"]:
    ax.spines[line].set_linewidth(linewidth)
    ax.spines[line].set_position(("outward",outward))

以下是生成的图形:

enter image description here

我希望我的图形看起来像下面这样,坐标轴线要缩短:

enter image description here

我无法在ax[axis].spines方法中找到对应选项。使用ax.axhline方法也无法使图形看起来好看。

1个回答

11
你可以将以下代码添加到你的代码末尾:
ax.spines['left'].set_bounds(20, 80)
ax.spines['bottom'].set_bounds(20, 80)

for i in [0, -1]:
    ax.get_yticklabels()[i].set_visible(False)
    ax.get_xticklabels()[i].set_visible(False)

for i in [0, -2]:
    ax.get_yticklines()[i].set_visible(False)
    ax.get_xticklines()[i].set_visible(False)
为了得到这个:

enter image description here


我曾经苦于找不到如何处理次刻度线,因为 ax.get_ytickminorlines 不存在,尽管 ax.get_yminorticklabels 存在。但是可以通过 ax.yaxis.get_minorticklines 进行调整。 - Aubergine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接