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

Python绘制饼图时报错x must be 1D如何解决

错误原因

x must be 1D是matplotlib绘制饼图的pie()函数抛出的格式错误:饼图仅支持一维数组/列表形式的数值输入,你当前传入的是二维结构(嵌套列表、二维ndarray、多列DataFrame切片等均属于二维结构),不满足函数的入参要求。

解决步骤

  • 先确认输入数据的维度:如果是numpy数组,执行print(变量名.shape)查看形状,如果是列表直接打印确认是否有嵌套结构,形如[[10,20],[30,40]]的就是不符合要求的二维嵌套列表,[10,20,30,40]是符合要求的一维结构。
  • 将二维结构转换为一维:
    • 二维numpy数组可以用flatten()方法压平:plot_x = 你的二维数组.flatten()
    • 嵌套列表可以用列表推导式展开:plot_x = [item for sublist in 你的嵌套列表 for item in sublist]
    • 如果你是从DataFrame中取数,改为取单列数值即可:plot_x = df['目标列名'].values
  • 调整后再调用绘图接口,参考最简可运行示例:
import matplotlib.pyplot as plt

# 一维数值输入
x = [25, 35, 20, 20]
labels = ['A类', 'B类', 'C类', 'D类']

plt.pie(x, labels=labels, autopct='%1.1f%%')
plt.show()

内容的提问来源于stack exchange,提问作者Yash Salvi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:04