如何将DataFrame中存储数值列表的列对应值绘制成水平线
实现代码
你可以通过提取all_maxs列的所有唯一值,再调用ax.axhline绘制水平线即可,完整代码如下:
import matplotlib.pyplot as plt # 提取all_maxs中的所有唯一最大值,避免重复绘制 all_max_vals = set(val for sublist in df['all_maxs'] for val in sublist) # 绘制c列折线,获取绘图轴对象 ax = df.plot(y='c') # 批量绘制水平线,可自行调整颜色、线型、标签参数 for max_val in all_max_vals: ax.axhline(y=max_val, color='r', linestyle='--', label=f'峰值{max_val}') # 显示图例,可按需关闭 plt.legend() plt.show()
参数说明
ax.axhline默认绘制横跨整个X轴的水平线,符合你预期的展示效果- 可修改
color参数调整水平线颜色,linestyle参数调整线型(-为实线,:为点线),不需要标签可删除label参数 - 如果你的
all_maxs列存在大量重复值,用set去重可以避免重复绘制相同的水平线,提升绘图效率
内容的提问来源于stack exchange,提问作者Gabriele
相关产品推荐
相关产品推荐

