プロットに目盛りを配置するための経験則は、1、2、5、および 10 の倍数を使用することだと思います。私の経験でmatplotlib
は、これを順守しているようです。set_ticks()
デフォルトの目盛りから逸脱する理由がある場合、それらを設定する最も簡単な方法は、特定の軸に対してメソッドを使用することだと思います。関連ドキュメントはこちら: http://matplotlib.org/api/axis_api.html。
例
import numpy as np
import matplotlib.pyplot as plt
ax = plt.subplot() # create axes to plot into
foo = np.array([0, 4, 12, 13, 18, 22]) # awkwardly spaced data
bar = np.random.rand(6) # random bar heights
plt.bar(foo, bar) # bar chart
ax.xaxis.get_ticklocs() # check tick locations -- currently array([ 0., 5., 10., 15., 20., 25.])
ax.xaxis.set_ticks(foo) # set the ticks to be right at each bar
ax.xaxis.get_ticklocs() # array([ 0, 4, 12, 13, 18, 22])
plt.draw()
ax.xaxis.set_ticks([0, 10, 20]) # minimal set of ticks
ax.xaxis.get_ticklocs() # array([ 0, 10, 20])
plt.draw()
この例の 3 つのオプションのうち、この場合はデフォルトの動作を維持します。しかし、デフォルトをオーバーライドする場合は間違いなくあります。たとえば、もう 1 つの経験則は、プロット内のデータではないインク (つまり、マーカーと線) の量を最小限に抑える必要があるということです。デフォルトの目盛りセットが だった場合、[0, 1, 2, 3, 4, 5, 6]
それを に変更するかもしれません[0, 2, 4, 6]
。
編集:[0, 10, 20]
コメントで示唆されているように、目盛りはロケーターでも実現できます。例:
ax.xaxis.set_major_locator(plt.FixedLocator([0,10,20]))
ax.xaxis.set_major_locator(plt.MultipleLocator(base=10))
ax.xaxis.set_major_locator(plt.MaxNLocator(nbins=3))