使用Matplotlib的axhline时y轴刻度消失,如何保留刻度并绘制y=0水平线?
解决Matplotlib axhline导致y轴刻度消失的问题
嘿,我一眼就揪出问题所在啦——你调用axhline时把y参数传成了字符串'0',而不是数值类型的0!这就是y轴刻度消失的罪魁祸首。
问题根源
Matplotlib的axhline()方法里,y参数要求接收数值类型的坐标值。当你传入字符串'0'时,Matplotlib无法正确解析这个参数,会错误地调整y轴的显示范围,最终导致刻度“失踪”。
修正后的代码
只需要把y='0'改成y=0,顺便把linestyle='-- '末尾的空格去掉(避免不必要的解析小问题),调整后的代码如下:
import matplotlib.pyplot as plt # 假设step是你的目标DataFrame,确保提前导入相关数据处理库 plt.style.use('ggplot') f, a0 = plt.subplots(1,1) # 修正y参数为数值0,规范linestyle格式 a0.axhline(color='dimgray', y=0, alpha=0.3, linestyle='--') a0.set_title("Revolutions Per Minute") a0.plot(step['time'], step['RPM'], color='royalblue') plt.show() # 别忘了加这句来显示图像哦
效果对比
- 未使用
axhline时:y轴刻度正常显示,仅展示RPM随时间变化的曲线 - 使用修正后的
axhline时:在y=0位置成功画出灰色虚线,同时y轴刻度完全保留,不会再消失
内容的提问来源于stack exchange,提问作者Danved
相关产品推荐
相关产品推荐

