【发布时间】:2019-01-05 08:16:12
【问题描述】:
我使用 matplotlib 从带有字符串和整数的字典中绘制图表,当我绘制带有初始值的图表时它可以工作,但是如果我向字典添加另一个键 比如说
ADD,example,example.com,20.0
当我再次绘制图表时,它会给出以下错误
"ValueError: shape mismatch: objects cannot be broadcast to a single shape"
但是这个问题只发生在这个图表上,每当我使用饼图时,我都可以将项目添加到字典中,并再次成功地绘制饼图。
比我更有经验的人可以告诉我我做错了什么吗?
这是我的代码中针对此问题的相关部分 感谢您的宝贵时间。
import numpy as np
import matplotlib.pyplot as plt
empresas = { "Prodsmart": ["prodsmart.com",1.5],"James": ["james.finance",3.9],
"Talkdesk": ["talkdesk.com",24.5], "Codacy": ["codacy.com",6.7],
"Veniam": ["veniam.com", 26.9], "Sensei": ["sensei.tech",0.5]}
def add_empresa(info):
empresas[info[0]] = [info[1],float(info[2])]
nlist = []
for x, k in empresas.items():
nlist.append(k[1])
def graph1():
group_data = nlist
group_names = list(empresas.keys())
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
plt.show()
return
inputs = ""
while inputs != "EXIT":
inputs = input("insert a command:" )
inputzs = inputs.split(",")
if inputzs[0] == "ADD" and len(inputzs) == 4:
add_empresa(inputzs[1:])
elif inputzs[0] == "PLOT":
graph1()
【问题讨论】:
-
你还需要在
graph1中创建nlist,否则在字典中添加新条目后group_data会比group_names短。此外,同时提取键和值,您不能依赖字典对于 3.7 之前的 Python 版本保持有序。
标签: python python-3.x numpy matplotlib