matplotlib对数尺度下自定义x-ticks出现多余无法移除刻度如何解决
你遇到的多余刻度是对数轴默认开启的次要刻度,你之前仅配置了主刻度的显示规则,没有关闭自动生成的次要刻度,新增一行关闭x轴次要刻度的代码即可解决问题。
修正后完整代码
import matplotlib.pyplot as plt ax = plt.gca() ax.set_xscale("log") ax.set_xticks([0.5,1,2]) ax.set_xticklabels([.5,1,2]) # 关闭x轴次要刻度,移除多余自动生成的刻度 ax.xaxis.set_minor_locator(plt.NullLocator()) ax.set_xlim([0.5,2]) plt.show()
原因说明
- 对数尺度的坐标轴默认会自动生成主、次两级刻度,
set_xticks()方法默认仅修改主刻度配置,次要刻度仍会按照对数尺度规则自动生成,你看到的6×10^-1刻度就属于自动生成的次要刻度 ax.get_xticks()方法默认仅返回主刻度列表,因此查询不到该次要刻度,若要查询次要刻度可调用ax.get_xticks(minor=True)
内容的提问来源于stack exchange,提问作者Jürg W. Spaak
相关产品推荐
相关产品推荐

