matplotlibのsymlogスケールを使用して、正の方向と負の方向の両方に広がる広範囲のパラメータをカバーします。残念なことに、symlogスケールはあまり直感的ではなく、あまり一般的ではないでしょう。したがって、私は、主要なティックの間に小さなダニを配置することによって、使用されるスケーリングをより明白にしたいと思います。スケールのログ部分では、[2,3、...、9] * 10^eにダニを配置したいところです。e
は近くのメジャーチックです。さらに、0と0.1の間の範囲は、均等に配置された小さなダニで覆われている必要があります。多くの小目盛りへの道があるsymlogスケールにマイナーチックを配置する方法は?
注こと:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import LogLocator, AutoLocator
x = np.linspace(-5, 5, 100)
y = x
plt.plot(x, y)
plt.yscale('symlog', linthreshy=1e-1)
yaxis = plt.gca().yaxis
yaxis.set_minor_locator(LogLocator(subs=np.arange(2, 10)))
plt.show()
残念ながら、これは私が欲しいものを生成しません:私は、次のコードを使用して、このようなダニに到着するmatplotlib.ticker APIを使用してみましたおそらくLogLocator
に起因するものと思われます。さらに、負の軸に小さな目盛りはありません。
代わりにAutoLocator
を使用すると小さな目盛りが表示されません。 AutoMinorLocator
では、スケーリング軸が均等にしかサポートされていません。私の質問は、どのようにして目的のティック配置を達成するのですか?
あなたにこれを追加するために、上流にPRを開くことができます:私は、次を与えるためのOP
MinorSymLogLocator()
クラス(小目盛りのlocatoinを設定する際に、一時的な大目盛りの場所を追加することにより、エッジを埋める)ハッキングしましたmplコードベース? – tacaswell