2016-07-05 17 views
0

同じx軸を共有する2つのサブプロットがあります。上のサブプロットのxticklabelsを削除しましたが、オフセット "1e7"は表示されたままです。どうすればそれを隠すことができますか?ここでmatplotlibのティックラベルとオフセットを隠す

は、私が使用するコードです:

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))を試みたが、それはまた、より低いsuplotに影響を与えました。

+0

に見えるセットがありますオフセット:あなたがしようとしました ' axes.formatter.useoffset'は既にありますか? Cf。 [matplotlibは、デフォルトで軸ラベルのオフセットを削除する](http://stackoverflow.com/questions/24171064/matplotlib-remove-axis-label-offset-by-default)@Christophの回答 – Dilettant

+0

私は 's1.get_xaxis()私は 's1.get_xaxis()。get_major_formatter()。set_powerlimits(( - 9,9))'を試しましたが、それはより低いsuplotにも影響を与えました。 –

+0

誰もがコメントの中にコメントが多少入るので、質問の中でこれらの最良のこれまでの試みが大好きです。 – Dilettant

答えて

1

代替は、サブプロットを作成するためにplt.subplotsを使用し、そこにオプションとしてsharex=Trueを使用することです。これにより、すべてのticklabelsと上のサブプロットからoffset_textが自動的にオフになります。ドキュメントから:

sharex:文字列またはブール値

Trueの場合、X軸は、すべてのサブプロット間で共有されます。あなたが複数の行を持っている Trueの場合や、 プロットの最後の行以外のすべてのX目盛りラベルが隠れについて虚偽

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

関連する問題