在python繪圖中,針對對數(shù)坐標(biāo)軸設(shè)置羽杰,有以下三種方法:
# 方法1
axs.set_xscale('log')
# 方法2
axs.semilogx()
# 方法3
logfmt = matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=True)
axs.xaxis.set_major_formatter(logfmt)
其中第三種可自行設(shè)置其他格式(如科學(xué)計數(shù)法等)格式的坐標(biāo)軸刻度焦履∨渑遥縱坐標(biāo)軸同理。這個時候的結(jié)果長這個樣子巢株。
直接對數(shù)坐標(biāo)系下的坐標(biāo)軸標(biāo)簽顯示結(jié)果
但更多的情況下槐瑞,我們的橫坐標(biāo)的值本來就是取完對數(shù)的,想要將標(biāo)簽設(shè)置為以10為底的阁苞,方法如下:
def mjrFormatter(x, pos):
return "$10^{{{0}}}$".format(x)
axs.xaxis.set_major_formatter(mpl.ticker.FuncFormatter(mjrFormatter))
得到的結(jié)果長這樣子
自定義以10為底的坐標(biāo)軸標(biāo)簽
可以看出后者的指數(shù)不是整數(shù)困檩,二者還是有差別的。
參考資料
https://stackoverflow.com/questions/15123928/matplotlib-change-yaxis-tick-labels