它报错了:Traceback (most recent call last): File "E:\pycharm\python_program\program\yiqi1\plot_pic.py", line 151, in <module> plot_swath('./db/024.db') File "E:\pycharm\python_program\program\yiqi1\plot_pic.py", line 144, in plot_swath patches,texts=ax1.pie(values,labels=labels,autopct="%.12f%%",colors=["red","blue","green"]) ValueError: too many values to unpack (expected 2)
时间: 2023-07-06 15:42:08 浏览: 105
lightgbm报错:OSError [WinError 126] 找不到指定的模块-三种方法
这个错误通常意味着返回的对象的数量与您尝试将其解包的变量数量不匹配。在这种情况下,它意味着`ax1.pie`方法返回不止两个对象,而你只尝试解包两个。
由于 `pie` 方法只返回一个对象,而不是两个,因此我们需要将 `patches` 和 `texts` 变成一个元组,以便正确解包。修改代码如下:
```
fig, axes = plt.subplots(figsize=(10,10),ncols=2)
ax1,ax2=axes.ravel()
values=[sum(bad_shot_list),sum(empty_shot_list),sum(noise_total_list)]
bad_shot_list_num=[]
empty_shot_list_num=[]
for i in bad_shot_list:
if i >0:
bad_shot_list_num.append(i)
for j in empty_shot_list:
if j >0:
empty_shot_list_num.append(j)
print(bad_shot_list_num)
print(len(bad_shot_list_num))
labels=["坏炮","丢炮","船噪音"]
plt.subplot(1,2,1)
patches,texts,_=ax1.pie(values,labels=labels,autopct="%.12f%%",colors=["red","blue","green"])##
plt.subplot(1,2,2)
patches,texts,_=ax2.pie(values,labels=labels,autopct="%.12f%%",colors=["red","blue","green"])
plt.legend()
plt.title("2023YC3D RMS level percent")
plt.show()
```
现在,`patches` 和 `texts` 变成了一个元组,它们与 `_` 一起被解包,以确保正确处理返回的对象。
阅读全文