gpt4 book ai didi

python - python动态条形图生成错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:20 25 4
gpt4 key购买 nike

按照这个例子, http://matplotlib.org/examples/pylab_examples/barchart_demo.html

我想生成动态条形图。到目前为止,我有以下脚本。

import sys
import matplotlib.pyplot as plt
import numpy as np

groups = int(sys.argv[1])

subgroup = int(sys.argv[2])

fig, ax = plt.subplots()

index = np.arange(groups)

print index

bar_width = 1.0 / (subgroup + 1)

print bar_width

mainlist = []


for x in range(0, groups):
#print x
templist = []
for num in range(0, subgroup):
templist.append(num+1)
#print templist
mainlist.append(templist)

print mainlist

for cnt in range(0,subgroup):
plt.bar(index + (bar_width * cnt), mainlist[cnt], bar_width)

plt.savefig('odd_bar_chart.png')

当我为组和子组传递相同的值时,这工作正常,

> odd_bar_chart.py 3 3
> odd_bar_chart.py 2 2

但是如果我像这样传递不同的值,

odd_bar_chart.py 3 2 odd_bar_chart.py 2 3

它给出以下错误AssertionError:尺寸不兼容:参数“高度”必须是长度{第一个参数}或标量

现在我不知道图片中的高度是多少?谁能告诉我这里出了什么问题?

最佳答案

看看 docs for plt.bar .这里的前两个参数是 leftheight引用栏左侧的值及其高度。

您的错误消息通知您第二个参数 height应该与第一个或标量(单值)的长度相同。

错误:在最后的迭代中,您绘制高度 mainlist[cnt]针对左侧位置 index + (bar_width * cnt) .显然你正在尝试调整 x使用 bar_with*cnt 在空间上分隔条形图的位置所以这是一个标量。 left 的长度由 index 给出, 这是从 index = np.arange(groups) 生成的所以长度为 group .但是高度的长度由 subgroup 给出。 , 这是在 templist 时完成的(长度为 subgroup )附加到 mainlist .

所以你的错误来自于你生成数据的方式。通常最好用手插入一些东西(就像他们在您引用的示例中所做的那样),或者使用 something form numpy.random 生成一组随机数。

关于python - python动态条形图生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18864810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com