matplotlib 在双对数图上设置轴刻度

tsm1rwdh  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(140)

在使用matplotlib的双对数图中,我希望在给定点上有轴刻度,并带有“标准”标签(没有科学符号)。
此代码不会产生所需的输出

import matplotlib.pyplot as plt

plt.errorbar(x = [1, 2, 4, 8, 10],
             y = [1, 1/2, 1/4, 1/8, 1/16 ],
             yerr = [0.05, 0.05, 0.05, 0.05, 0.05],
             fmt='o', capsize=2)
axes=plt.gca()
axes.set_xlim([1, 10])
axes.set_ylim([10**(-2),2])
axes.set_xscale('log')
axes.set_yscale('log')
axes.set_xticks([1,5,10])
plt.show()

我得到的是

我想去掉x标签,只有“1,5,10”。

o4tp2gmn

o4tp2gmn1#

在上面的图中,中点刻度是次要刻度,而最后一个刻度是主要刻度。因此,要更改它,您可以替换下面的代码。..

axes.set_xticks([1,5,10])

和...

def format_fn(tick_val, tick_pos):
    if tick_val in [1,5,10]:
        return int(tick_val)
    else:
        return ''
    
axes.xaxis.set_minor_formatter(format_fn)
axes.xaxis.set_major_formatter(format_fn)

这会给予你这个情节

相关问题