如何使用Matplotlib正确绘制图表?解决数值分布不均的绘图异常
问题解决:正确绘制数值分布的折线图
问题原因
你的l1和l2都是字符串类型的列表,Matplotlib默认会把字符串视为分类标签,每个标签在x轴上占据等宽的位置,完全忽略了字符串背后的数值大小,所以才会出现x轴步长均匀的情况。
解决方法
把两个列表里的字符串元素转换成浮点型数值,再用转换后的数值绘图即可:
代码示例
import matplotlib.pyplot as plt l1 = ['100.00', '120.33', '140.21', '159.81', '179.25', '183.13', '202.49', '202.89', '204.18', '205.35', '206.44', '207.45', '208.40', '209.30', '210.15', '210.96', '211.73', '212.47', '213.18', '213.87', '214.53', '215.17', '215.79', '216.39', '216.98', '217.54', '218.10', '218.63', '219.16', '219.67', '220.18', '220.67', '221.15'] l2 = ['13.14', '13.37', '13.53', '13.66', '13.76', '13.77', '20.70', '21.51', '23.85', '26.39', '29.13', '32.06', '35.17', '38.47', '41.95', '45.63', '49.50', '53.59', '57.90', '62.45', '67.25', '72.33', '77.70', '83.40', '89.43', '95.83', '102.65', '109.90', '117.65', '125.95', '134.84', '144.40', '154.71'] # 将字符串列表转换为浮点型数值列表 x = [float(num) for num in l1] y = [float(num) for num in l2] # 绘制符合数值分布的图表 fig, ax = plt.subplots(1) ax.plot(x, y) plt.show()
效果说明
转换后,Matplotlib会把x轴当作连续数值轴处理,根据数值的实际大小分配间距,就能得到和目标样式一致的图表。
内容的提问来源于stack exchange,提问作者drSlump
相关产品推荐
相关产品推荐

