如何在Matplotlib中设置ylim的y轴刻度间隔为10且范围10到70
要实现y轴刻度步长为10的效果,只需对现有代码做两处调整:
- 先修复原代码的语法bug:绘制
predicted_tech_2曲线的代码里,marker='*'后面漏掉了逗号,运行会直接报错,先补全这个逗号 - 在你已经写好的
plt.ylim(10, 70)这行代码下方,新增一行设置y轴刻度的代码即可,因为Python的range是左闭右开区间,所以结束值要设为71才能包含70这个刻度:
plt.yticks(range(10, 71, 10), fontsize=8)
调整后的完整代码如下:
import matplotlib.pyplot as plt # 原代码缺导入,顺手补上 plt.figure(figsize=(3,2)) no = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] measured_tech_1= [37.506, 37.506, 37.506, 37.506, 37.506, 37.506, 37.506, 37.506, 37.506, 37.506, 37.506,37.506, 37.506] predicted_tech_1= [38.811, 38.811, 38.811, 38.811, 38.811, 38.811, 38.811, 38.811, 38.811, 38.811, 38.811,38.811, 38.811] measured_tech_2 = [4.735, 8.451, 10.702, 12.857, 14.900, 16.908, 19.233, 21.328, 23.351, 25.403, 27.580, 29.939,32.832] predicted_tech_2 = [2.945, 6.989, 8.294, 10.968, 13.643, 16.506, 19.261, 21.658, 24.056, 26.454, 29.175, 32.240,34.795] measured_tech_3 = [38.495, 38.495, 38.495, 38.495, 38.495, 38.771, 38.771, 38.771, 38.771, 38.616, 38.616, 38.616,38.616] predicted_tech_3 = [35.255, 35.351, 35.463, 35.492, 35.181, 35.410, 35.483, 35.453, 35.329, 35.146, 34.6130,35.407, 35.500] plt.plot(no,measured_tech_1 , color='orange', marker='^',linestyle='dashed',label='Measured-Technique 1') plt.plot(no,predicted_tech_1 , color='orange', marker='*',linestyle='dashed',label='Predicted-Technique 1') plt.plot(no, measured_tech_2, color='purple', marker='^', linestyle='dashed',label='Measured-Technique 2') plt.plot(no, predicted_tech_2, color='purple', marker='*', linestyle='dashed',label='Predicted-Technique 2') # 补全了此处的逗号 plt.plot(no, measured_tech_3, color='green', marker='^',linestyle='dashed',label='Measured-Technique 3') plt.plot(no, predicted_tech_3, color='green', marker='*',linestyle='dashed',label='Predicted-Technique 3') plt.ylim(10, 70) plt.yticks(range(10, 71, 10), fontsize=8) # 新增的y轴刻度设置代码 plt.xticks(no,fontsize='8') plt.legend(loc='upper right',prop={'size': 3.5}) plt.xlabel('No.') plt.ylabel('Latency') plt.show() # 顺手补上显示图像的代码
如果需要自定义刻度的显示格式,也可以给plt.yticks传入第二个参数指定刻度标签内容,常规场景下上面的代码就可以实现预期的步长效果。
内容的提问来源于stack exchange,提问作者abaair davis
相关产品推荐
相关产品推荐

