隐藏matplotlib中的刻度标签和偏移量

时间:2016-07-05 14:52:53

标签: python matplotlib plot

我有两个共享相同x轴的子图。我删除了上部子图的xticklabels,但偏移“1e7”仍然可见。我怎么能隐藏它?

以下是我使用的代码:

import matplotlib.pyplot as plt
import numpy as np

plt.figure()
s1 = plt.subplot(2,1,1)
s1.plot(np.arange(0,1e8,1e7),np.arange(10))
s1.tick_params(axis="x", labelbottom=False)

s2 = plt.subplot(2,1,2, sharex=s1)
s2.plot(np.arange(0,1e8,1e7),np.arange(10))

我也尝试了s1.get_xaxis().get_major_formatter().set_useOffset(False),但它没有做任何事情,我也尝试了s1.get_xaxis().get_major_formatter().set_powerlimits((-9,9)),但它也影响了较低的情节。

2 个答案:

答案 0 :(得分:1)

另一种方法是使用plt.subplots创建子图,并使用sharex=True作为选项。这会自动关闭顶部子图中的所有ticklabelsoffset_text。来自文档:

  

sharex:string或bool

     

如果为True,则X轴将在所有子图中共享。如果是真的和   你有多行,除了最后一行之外的所有行上都有x刻度标签   图表的可见设置为False

import matplotlib.pyplot as plt
import numpy as np

fig, (s1, s2) = plt.subplots(2, 1, sharex=True)
s1.plot(np.arange(0,1e8,1e7),np.arange(10))

s2.plot(np.arange(0,1e8,1e7),np.arange(10))

plt.show()

enter image description here

答案 1 :(得分:0)

我终于在https://github.com/matplotlib/matplotlib/issues/4445找到了答案。我需要在代码中添加以下行:

plt.setp(s1.get_xaxis().get_offset_text(), visible=False)