首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib ValueError

Matplotlib ValueError
EN

Stack Overflow用户
提问于 2020-05-07 15:55:56
回答 1查看 38关注 0票数 1

我已经为这个问题挣扎了几个小时,代码如下:

代码语言:javascript
运行
复制
    for i in range(int(user_input)):
        summ = randint(1,10)+randint(1,10)+randint(1,10)+randint(1,10)
        x.append(summ)   
    print(x) 
    counts = np.bincount(np.array(x))
    fig, ax = plt.subplots()
    ax.bar(range(41), counts, width=0.8, align='center')
    ax.set(xticks=range(1,41), xlim=[0, 41])
    plt.show()

我得到了以下错误:我不知道为什么?

ValueError:形状不匹配:不能将对象广播到单个形状

日志指向以下一行:

ax.bar(range(41), counts, width=0.8, align='center')

谢谢

编辑:@olenscki的答案是可行的,但从图片中你可以看到,最终的情节是混乱的,任何进一步的帮助都是非常感谢的:

编辑2:正如@olenscki的评论所建议的,问题已经解决了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-07 16:09:30

在您的ax.bar调用中,您提供了函数2参数:范围为41和计数数组。发生的情况是,范围( 41 )并不总是具有相同的维数,范围总是有41个数字,但是计数可能只有20或60个值。这将解决您的问题:

代码语言:javascript
运行
复制
ax.bar(range(len(counts)), counts, width=0.8, align='center')

这样,您将约束范围具有与计数相同的维度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61662229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档