リストで渡すとかめんどくさいんですけど、自動調整とかそんなことができるのか・・・?
と思っていたができるっぽい
matplotlibの公式ドキュメントがわかりやすいので貼っておきます
Tick locators — Matplotlib 3.4.3 documentation
# Multiple Locator
setup(axs[1], title="MultipleLocator(0.5)")
axs[1].xaxis.set_major_locator(ticker.MultipleLocator(0.5))
axs[1].xaxis.set_minor_locator(ticker.MultipleLocator(0.1))
で
majorのtickを0.5刻み
minorのtickを0.1刻みで表示
# Linear Locator
setup(axs[3], title="LinearLocator(numticks=3)")
axs[3].xaxis.set_major_locator(ticker.LinearLocator(3))
axs[3].xaxis.set_minor_locator(ticker.LinearLocator(31))
で表示してる範囲のtickの数を調整できるっぽい
この例だとmajorに3つ、minorに31個
実際に使ってみてトラブったらまた追記します
----------
こういうスマートな方法を知らずに、力技でやったときのメモ
■ 参考 : matplotlib.pyplot.yticks
matplotlibのドキュメントによると
plt.yticks(10, 100, 1000)
とかすると、10, 100, 1000のところにticsを打ってくれる
yminとymaxを与えると自動的に1桁ずつticsを打ちたい
(調べても全然いい方法が出てこないので、力技でやっちゃう〜)
logスケールなので、log10でyminとymaxの冪乗のみを取り出す
yminについては、floorで切り捨て
ymaxについてはintで切り上げをする
これだとarangeが1つ少なく出力するのでymaxの方は1を追加している
これは数字の冪乗成分のリストなので、10**で実際の数字に直す