You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中根据字典的键绘制对应的值列表

解决Matplotlib绘图时X/Y维度不匹配的报错问题

问题背景

我有一个以整数为键、嵌套列表为值的字典,示例结构如下:

df_param={0: [[0], [20], [20], [20], [5], [1], [5]], 1: [[0], [20], [20], [5], [1], [5]], 2: [[0], [20], [20], [5], [5]], 3: [[0], [20], [5], [5]], 4: [[0], [5], [5]], 5: [[0], [5]], 6: [[0]], 7: [[0]], 8: [[0], [20]], 9: [[0]], 10: [[0]]}

想要将字典的键作为X轴,对应的值列表作为Y轴绘图,使用以下代码时触发报错:

import matplotlib.pyplot as plt
for key, values in df_param.items():
    plt.plot(key, values)
plt.show()

报错信息:

ValueError: x and y must have same first dimension, but have shapes (1,) and (7, 1)

报错原因

plt.plot()要求X和Y的维度必须完全一致。当前代码中,每个key是单个整数(维度为1),但对应的values是包含多个子列表的嵌套列表(比如键0对应的值有7个元素,维度为7),两者维度不匹配,因此触发维度错误。

解决方法

方法1:绘制散点图(每个值对应同一X坐标)

如果需要将同一个键下的所有值都绘制在该键对应的X位置上,先扁平化嵌套列表,再为每个值生成相同的X坐标:

import matplotlib.pyplot as plt

# 预处理数据
x_coords = []
y_coords = []
for key, values in df_param.items():
    # 取出嵌套列表中的单个数值,扁平化数据
    flat_values = [val[0] for val in values]
    # 为每个Y值匹配对应的X坐标
    x_coords.extend([key] * len(flat_values))
    y_coords.extend(flat_values)

plt.scatter(x_coords, y_coords, s=10)
plt.xlabel('字典键(X轴)')
plt.ylabel('值(Y轴)')
plt.show()

方法2:绘制折线图(每个键对应一条独立折线)

如果要把每个键下的多个值连成一条折线,需要为每个值生成从当前键开始的连续X偏移值:

import matplotlib.pyplot as plt

for key, values in df_param.items():
    # 扁平化Y值
    y_vals = [val[0] for val in values]
    # 生成对应X值:从key开始,按值的数量生成连续坐标
    x_vals = [key + idx for idx in range(len(y_vals))]
    plt.plot(x_vals, y_vals, marker='o', label=f'Key {key}')

plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()

方法3:绘制箱线图(展示每个键对应值的分布)

如果需要直观展示每个键对应值的分布情况,可以使用箱线图:

import matplotlib.pyplot as plt

# 整理数据:按键排序后扁平化每个键对应的值
sorted_keys = sorted(df_param.keys())
data_groups = []
for key in sorted_keys:
    data_groups.append([val[0] for val in df_param[key]])

plt.boxplot(data_groups, labels=sorted_keys)
plt.xlabel('字典键')
plt.ylabel('值分布')
plt.show()

内容的提问来源于stack exchange,提问作者Priyanka Rajendran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:45:32