当我使用ax.set_yscale时,如何摆脱原始的yticks / yticklabels(' log')

时间:2018-01-26 19:42:22

标签: python matplotlib

我正在一个半开花的情节中绘制一些值。我需要使用

ax.set_yscale('log')

而不是

ax.semilogy(...

因为我有一些负数值的数组(所以我可以将比例设置为symlog)。

我的代码

ax = plt.subplot(132)
ax.set_yscale('log')
ax.plot(np.arange(0,4),array,'-o')
ax.errorbar(np.arange(0,4),array,yerr=[yerr_neg,yerr_pos])
ax.set_yticks(np.exp(np.arange(-0.4,0.5,0.1)))
ax.set_yticklabels(np.arange(-0.4,0.5,0.1))

然而,自动放置的刻度和标签仍然存在:

figure with plot

如何正确摆脱原始的刻度/标签?通过消除任一绘图线(意味着删除ax.plot线或ax.errorbar线),我仍然得到相同的错误

1 个答案:

答案 0 :(得分:0)

显示的标签是次要的标签。您可以将次要刻度设置为空列表以消除它们。

ax.set_yticks([], minor=True)

或者只是设置次要刻度,

ax.minorticks_off()