軸の最後のティック位置の前後にある程度のスペースが必要です。私はちょうどaxis.set_xlim()
を使用しますが、これは私の(カスタム)ロケータと干渉し、チックの生成を再実行します。私は、ロケータクラスのview_limits()
メソッドを見つけて上書きしましたが、自動的に呼び出されるようではなく、手動で呼び出されたときに結果のプロットに影響を与えません。私はドキュメントとソースを検索しましたが、解決策は出ていませんでした。何か不足していますか?Matplotlibの軸のview_limits/rangeを設定する方法
大きな画像の場合は、ティックの前後にある程度のスペースを与え、MultipleLocatorのような「ベース」の倍数であるチックポイントを選択しますが、ティック数が超えると自動的にベースをスケールします指定された値。ロケータをサブクラス化せずにこれを達成する別の方法があるなら、私はすべての耳です:)。私はあなたの問題があり、完全に何を理解している場合、
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MaxNLocator
class MyLocator(MaxNLocator):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def view_limits(self, dmin, dmax):
bins = self.bin_boundaries(dmin, dmax)
step = bins[1] - bins[0]
result = np.array([bins[0] - step, bins[-1] + step])
print(result)
return result
a = 10.0
b = 99.0
t = np.arange(a, b, 0.1)
s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)
loc = MyLocator(9)
fig, ax = plt.subplots()
plt.plot(t, s)
ax.xaxis.set_major_locator(loc)
loc.autoscale() # results in [ 0. 110.] but doesnt change the plot
plt.show()
ありがとう!私はそれを使って作業することができます。 view_limitsメソッド全体が期待どおりに機能しないのはなぜか分かりません。 – Fookatchu