是否可以在绘图区域内放置刻度标签?我已经尝试过了:
ax.tick_params(axis="y",pad=-.5, left="off",labelleft="on")
Run Code Online (Sandbox Code Playgroud)
和
ax.tick_params(axis="y",direction="in", left="off",labelleft="on")
Run Code Online (Sandbox Code Playgroud)
前者只是向内移动轴,而后者只移动刻度而不是刻度标签.
Imp*_*est 14
我猜你完全走在正确的轨道上.问题只是找到填充的好参数,以便在轴内有标签.填充以点为单位进行测量,因此使用大于0.5的数字是有意义的.由于文本的对齐,x和y轴的填充也不同.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.tick_params(axis="y",direction="in", pad=-22)
ax.tick_params(axis="x",direction="in", pad=-15)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我完全忘记了pad中的参数tick_params。 @ImportanceOfBeingErnest\xe2\x80\x99s 答案利用了这一点,并且更适合所提出的问题。
尽管如此,我将在这里留下我的答案作为一个例子,说明如果不能通过像thick_params.
我不知道实现这一目标的官方方法。但你可以对其进行硬编码。
如果你只想在内部有刻度,你只需要运行:
\n\nax.tick_params(direction="in")\nRun Code Online (Sandbox Code Playgroud)\n\n现在,要在绘图区域内移动标签,您需要向刻度添加填充,如下所示:
\n\nTICK_PADDING = -10\n\nxticks = [*ax.xaxis.get_major_ticks(), *ax.xaxis.get_minor_ticks()]\nyticks = [*ax.yaxis.get_major_ticks(), *ax.yaxis.get_minor_ticks()]\n\nfor tick in (*xticks, *yticks):\n tick.set_pad(TICK_PADDING)\nRun Code Online (Sandbox Code Playgroud)\n\n您可能必须对 x 和 y 刻度使用不同的填充。在这种情况下,您应该:
\n\nX_TICK_PADDING = -10\nY_TICK_PADDING = -20\n\nxticks = [*ax.xaxis.get_major_ticks(), *ax.xaxis.get_minor_ticks()]\nyticks = [*ax.yaxis.get_major_ticks(), *ax.yaxis.get_minor_ticks()]\n\nfor tick in xticks:\n tick.set_pad(X_TICK_PADDING)\n\nfor tick in yticks:\n tick.set_pad(Y_TICK_PADDING)\nRun Code Online (Sandbox Code Playgroud)\n\n它不漂亮,但很有效。让我知道这是否是您想要的。
| 归档时间: |
|
| 查看次数: |
11849 次 |
| 最近记录: |