使用axhline时删除了Matplotlib y轴刻度

时间:2019-03-19 09:59:38

标签: python matplotlib

我有一个问题,在使用yaxisa0.axhline的刻度被删除了。我想在y = 0处画一条线,但还要保持yaxis的刻度。如何实现呢?

使用axhline: With axhline

没有axhline: Without axhline

代码:

plt.style.use('ggplot')
f, a0 = plt.subplots(1,1)
a0.axhline(color='dimgray', y='0', alpha=0.3, linestyle='-- ')
a0.set_title("Revolutions Per Minute")
a0.plot (step['time'], step['RPM'], color='royalblue')

2 个答案:

答案 0 :(得分:2)

您将行的位置设置为字符串ax.axhline(y='0', ...)。这将导致它被解释为一个类别。并且由于它是轴上的唯一类别,因此不再显示其他刻度标签。而是使用数字:

ax.axhline(y=0, ...)

答案 1 :(得分:0)

您可以手动设置yticksyticklables

plt.style.use('ggplot')
f, a0 = plt.subplots(1,1)
a0.axhline(color='dimgray', y='0', alpha=0.3, linestyle='-- ')
a0.set_yticks([1, 2, 3])
a0.set_yticklabels([1, 2, 3])
a0.set_title("Revolutions Per Minute")
a0.plot (step['time'], step['RPM'], color='royalblue')

编辑:如果先绘制然后再添加线,也可以从轴上获取它们。

plt.style.use('ggplot')
f, a0 = plt.subplots(1,1)
a0.plot (step['time'], step['RPM'], color='royalblue')
yticks = a0.get_yticks()
a0.set_yticks(yticks)
a0.set_yticklabels(yticks)
a0.axhline(color='dimgray', y='0', alpha=0.3, linestyle='--')
a0.set_title("Revolutions Per Minute")