2017-08-14 39 views
0

matplotlibのログプロットの目盛りラベルを変更しようとしています。ただし、以下のような問題が発生することがあります。手動でラベルを移動すると、古いラベルの一部が残っているように見えます。どのようにこれを修正するための任意のアイデア?matplotlibのログスケール目盛りラベルを変更するには

import matplotlib.pyplot as plt 
%matplotlib inline 

fig, ax = plt.subplots() 
x = [1, 10] 
y = [0, 1] 
ax.plot(x, y) 
ax.set_xscale('log') 
ax.set_xlim(0, 10) 

ax.set_xticks([2.5, 7.5]) 

また、私は最近matplotlib 2.0.2にアップグレードしました。以前はこの動作を見たことがありません。

enter image description here

答えて

1

示す値は、あなたが述べることができる、それらを無効にするには、小目盛りです:

ax.minorticks_off() 

これは、7.5が同様dissapearing用目盛りラベルになります。

from matplotlib.ticker import StrMethodFormatter, NullFormatter 
ax.xaxis.set_major_formatter(StrMethodFormatter('{x:.1f}')) 
ax.xaxis.set_minor_formatter(NullFormatter()) 
+0

おかげで、動作します:あなたはおそらく欲しい

は、以下のソリューションです!短い追跡調査の質問 - 10^{ - 1}、10^{ - 2}、可能であれば2 \ times 10^{ - 1}というように、目盛りのラベルをどのように表示しますか? [LaTeXとして、私はstackoverflowでそれを表示する方法がわかりません]を想像してください。 – physicsGuy

+0

'ax.xaxis.set_major_formatter(StrMethodFormatter( '{{x:.0E}'))' aftercは適切なxticksを設定します。答えの方法では、小数点以下1桁の浮動小数点数にフォーマットを強制します。これは10進の科学的記法に強制されます。他にもオプションがありますが、文字列の書式に関するトピックを見つけることができます。これにより、できるだけ短い時間でより多くの情報を得ることができます。 ;) – Uvar

+0

少し違ったものを探していました。基本的には私の質問に示されているように、実際の指数でティックラベルを表示するフォーマッタが必要でした。私は 'matplotlib.ticker.LogFormatterMathtext'がそれを正確に行うことを発見しました。それでも、ティッカーサブパッケージに私を指摘してくれてありがとう、それはとても役に立ちました。 – physicsGuy

関連する問題