如何基于列表字典绘图?如何用for循环拆分绘图y值?
基于for循环拆分y值绘制折线图的实现方案
给定字典中存储的y值为字符串类型,绘图前需先转换为整数/浮点数,避免坐标轴排序错乱或绘图报错。无需提前手动拆分各组y值,直接遍历字典键值对,即可在循环中逐组获取单条折线对应的y序列。
核心实现代码
import matplotlib.pyplot as plt # 原始输入数据 d = {'1':['5','6','7'], '2':['1','2','3'], '3':['9','8','7']} both = [0.5, 1.0, 1.5] plt.figure(figsize=(7, 4)) # 遍历字典逐组绘制折线 for line_key, y_raw in d.items(): # 将字符串格式的y值转为浮点型,得到当前折线的完整y轴取值 y_data = [float(num) for num in y_raw] # 绘制单条折线,x轴固定使用both列表,与y_data长度一一对应 plt.plot(both, y_data, label=f'键{line_key}对应折线') # 基础绘图配置 plt.xlabel('X轴取值') plt.ylabel('Y轴取值') plt.legend() plt.show()
循环拆分逻辑说明
- 字典的
items()方法会逐次返回(键, 对应值列表)的元组,每次循环对应一条独立折线的全部数据 - 循环内的
y_raw是当前键对应的原始字符串列表,转换类型后得到的y_data就是绘图需要的该组y值,顺序和x轴both的取值一一对应 - 不需要提前定义三个独立变量存储三组y值,循环执行时会自动完成分组取值、逐线绘制的流程
内容的提问来源于stack exchange,提问作者birbarchimedes
相关产品推荐
相关产品推荐

