. Eğer kene değerinin günlüğünü göstererek iyiysen matplotlib.ticker.LogFormatterExponent
'u kullanabilirsiniz. matplotlib.ticker.LogFormatter
'u denediğimi hatırlıyorum ama pek hoşlanmadım: eğer iyi hatırlarsam base^exp
(0.1, 0, 1) 'e kadar her şeyi koyar. Her iki durumda da (diğer tüm matplotlib.ticker.LogFormatter*
gibi) küçük keneler almak için labelOnlyBase=False
'u ayarlamanız gerekir.
Özel bir işlev oluşturmayı bitirdim ve matplotlib.ticker.FuncFormatter
'u kullanın. Benim yaklaşımım, kenelerin tamsayı değerlerinde olduğunu ve bir temel 10 günlüğü istediğini varsayar. Eğer büyük keneler kaldırmak ve büyük ve küçük kene yazı tipi boyutunu farklıdır subs = [2.0, 3.0, 6.0]
kullanmazsanız
from matplotlib import ticker
import numpy as np
def ticks_format(value, index):
"""
get the value and returns the value as:
integer: [0,99]
1 digit float: [0.1, 0.99]
n*10^m: otherwise
To have all the number of the same size they are all returned as latex strings
"""
exp = np.floor(np.log10(value))
base = value/10**exp
if exp == 0 or exp == 1:
return '${0:d}$'.format(int(value))
if exp == -1:
return '${0:.1f}$'.format(value)
else:
return '${0:d}\\times10^{{{1:d}}}$'.format(int(base), int(exp))
subs = [1.0, 2.0, 3.0, 6.0] # ticks to show per decade
ax.xaxis.set_minor_locator(ticker.LogLocator(subs=subs)) #set the ticks position
ax.xaxis.set_major_formatter(ticker.NullFormatter()) # remove the major ticks
ax.xaxis.set_minor_formatter(ticker.FuncFormatter(ticks_format)) #add the custom ticks
#same for ax.yaxis
sakıncası
asla (bu benim
matplotlibrc
yılındatext.usetex:False
kullanarak nedenini olabilir) benim yakın oy, soruyu büyük ölçüde yanlış oku. Grafiğinizde büyük kütükleriniz yoksa, büyük olasılıkla bir günlük ölçeği kullanmamalısınız. – tacaswell@tcaswell bu doğru değil: Eğer güç kanununa yakın bir işleviniz varsa (muhtemelen küçük bir özellik ile), küçük aralıklarla da bir günlük ölçeği kullanmak istersiniz. Sonra bir kütük arsada, büyük kene 10'luk güçtedir, böylece bir menzile sahip olabilirsiniz [2000, 9000] ve büyük bir kene yok –
Bu benim düşündüğüm buydu. 10 değerindeki herhangi bir güce yakın olmayan bir değerin etrafında yoğunlaşan (çok az dağınık) ve hala X eksenine bir günlük ölçeği uygulamak isteyen binlerce noktaya sahip olabilirim. –