Matplotlib绘制折线/散点图时Y轴出现非线性异常问题求助
问题:绘图时Y轴出现异常非线性刻度的解决方法
数据说明
以下是用于绘图的精度与召回率数据:
# 反转后的精度数据(字符串类型) list(reversed(best_cs.precisions)) ['0.0269', '0.0318', '0.0600', '0.0949', '0.1227', '0.1324', '0.1822', '0.2426', '0.3624', '0.4258', '0.4876'] # 召回率数据(数值类型) recalls [1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0]
尝试用折线图或散点图绘制上述数据时,出现了异常的非线性Y轴,如图所示:
解决方法
问题核心是精度数据为字符串类型,绘图库会将其识别为类别型数据而非连续数值,从而生成非线性的分类刻度。解决步骤如下:
将精度列表中的所有字符串元素转换为浮点数类型:
# 转换精度数据为数值类型 precision_numeric = [float(p) for p in list(reversed(best_cs.precisions))](注:如果召回率数据也是字符串类型,需执行同样的转换操作)
使用转换后的数值数据重新绘图,此时绘图库会识别为连续型数据,自动生成线性的Y轴刻度,恢复正常绘图效果。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

