11

有没有办法在 matplotlib 图中输入顶部刻度和底部刻度?有时我有数据隐藏刻度,我想只为受影响的一侧设置刻度。

以下代码将同时影响顶部和底部或左右。

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot( 111 )
ax.plot( [0, 1, 3], 'o' )
ax.tick_params( direction = 'out' )
plt.show()
4

2 回答 2

10

您可以有双轴,然后您可以分别设置每一侧的属性:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([0, 1, 3], 'o')

axR = ax.twinx()
axT = ax.twiny()

ax.tick_params(direction = 'out')
axR.tick_params(direction = 'in')

ax.tick_params(direction = 'out')
axT.tick_params(direction = 'in')

plt.show()

在此处输入图像描述

于 2016-08-16T10:03:59.680 回答
6

#11859升级后,matplotlib>=3.1.0我们现在可以通过和使用辅助轴来实现独立的刻度方向:secondary_xaxissecondary_yaxis

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot( 111 )
ax.plot( [0, 1, 3], 'o' )
ax.tick_params( direction = 'out' )
ax_r = ax.secondary_yaxis('right')
ax_t = ax.secondary_xaxis('top')
ax_r.tick_params(axis='y', direction='in')
ax_t.tick_params(axis='x', direction='inout')

这产生了这个数字:

具有独立刻度方向(in/out/inout)左右以及顶部和底部的轴。

于 2020-06-21T12:54:00.073 回答