Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据分类数据和数值数据绘制堆叠条形图_Python_Python 3.x_Matplotlib_Data Visualization_Stacked Chart - Fatal编程技术网

Python 如何根据分类数据和数值数据绘制堆叠条形图

Python 如何根据分类数据和数值数据绘制堆叠条形图,python,python-3.x,matplotlib,data-visualization,stacked-chart,Python,Python 3.x,Matplotlib,Data Visualization,Stacked Chart,我已经给出了一些州的名称,以及这些州的已打开和已关闭投诉总数。所有三个州都存储在一个列表中。 我想绘制一个堆叠条形图,显示x轴上的状态,其中每个状态的条形图以堆叠形式显示打开和关闭的投诉。我自己也试过,但我总是出错 形状不匹配:无法将对象广播到单个形状 这是我正在使用的代码 #绘制堆栈条形图 indx=列表(范围(列(状态))) plt.图(figsize=(12,8)) 图形状态=plt.bar(x=indx,高度=states,宽度=0.35) 图形_闭合=plt.bar(x=indx,高

我已经给出了一些州的名称,以及这些州的已打开和已关闭投诉总数。所有三个州都存储在一个列表中。
我想绘制一个堆叠条形图,显示x轴上的状态,其中每个状态的条形图以堆叠形式显示打开和关闭的投诉。我自己也试过,但我总是出错

形状不匹配:无法将对象广播到单个形状
这是我正在使用的代码

#绘制堆栈条形图
indx=列表(范围(列(状态)))
plt.图(figsize=(12,8))
图形状态=plt.bar(x=indx,高度=states,宽度=0.35)
图形_闭合=plt.bar(x=indx,高度=闭合,宽度=0.35,底部=状态)
图形打开=plt.bar(x=indx,高度=打开,宽度=0.35,底部=关闭+状态)
plt.xlabel(“状态”)
plt.ylabel(“投诉”)
plt.show()
这是我使用的数据

状态=[“马里兰州”、“乔治亚州”、“密歇根州”、“加利福尼亚州”、“新墨西哥州”、“印第安纳州”、“弗吉尼亚州”、“伊利诺伊州”、“宾夕法尼亚州”、“马萨诸塞州”、“俄勒冈州”、“得克萨斯州”、“新罕布什尔州”、“明尼苏达州”、“田纳西州”、“科罗拉多州”、“佛罗里达州”、“阿拉巴马州”、“华盛顿州”、“纽约州”、“新泽西州”、“缅因州”、“密苏里州”、“西弗吉尼亚州”、“蒙大拿州”、“密西西比州”、“康涅狄格州”、“佛蒙特州”、“肯塔基州”、“南卡罗莱纳州”a'、“俄亥俄州”、“犹他州”、“特拉华州”、“阿肯色州”、“内华达州”、“路易斯安那州”、“堪萨斯州”、“亚利桑那州”、“北卡罗来纳州”、“罗德岛州”、“哥伦比亚特区”、“爱荷华州”]
开放=[15,80,23,61,4,9,11,29,20,11,13,22,4,4,47,22,39,9,23,19,2,1,3,16,3,1,3,3,6,4,1,1,6,2]
封闭=[63208,92159,11,50,49135110,50,36,49,8,29,96,58201,17,75,6,56,3,3,8,1,23,9,2,4,15,3,16,8,6,1,12,1,14,3,1,1]

如果我将“打开”列表填充为与“状态”和“关闭”相同的长度(43),我可以使绘图正常工作

导入matplotlib.pyplot作为plt
国家=[“马里兰州”、“乔治亚州”、“密歇根州”、“加利福尼亚州”、“新墨西哥州”、“印第安纳州”、“弗吉尼亚州”、“伊利诺伊州”、“宾夕法尼亚州”、“马萨诸塞州”、“俄勒冈州”、“得克萨斯州”、“新罕布什尔州”、“明尼苏达州”、“田纳西州”、“科罗拉多州”、“佛罗里达州”、“阿拉巴马州”、“华盛顿州”、“纽约州”、“新泽西州”、“缅因州”、“密苏里州”、“西弗吉尼亚州”、“蒙大拿州”、“密西西比州”、“康涅狄格州”、“佛蒙特州”、“肯塔基州”、“南卡罗莱纳州”a'、“俄亥俄州”、“犹他州”、“特拉华州”、“阿肯色州”、“内华达州”、“路易斯安那州”、“堪萨斯州”、“亚利桑那州”、“北卡罗来纳州”、“罗德岛州”、“哥伦比亚特区”、“爱荷华州”]
开放=[15,80,23,61,4,9,11,29,20,11,13,22,4,4,47,22,39,9,23,19,2,1,3,16,3,1,3,6,4,1,1,6,2,0,0,0,0,0,0]
封闭=[63208,92159,11,50,49135110,50,36,49,8,29,96,58201,17,75,6,56,3,3,8,1,23,9,2,4,15,3,16,8,6,1,12,1,14,3,1,1]
indx=列表(范围(列(状态)))
宽度=0.35
p1=plt.bar(indx,打开,宽度)
p2=plt.bar(indx,闭合,宽度,
底部=打开)
plt.ylabel('打开')
plt.xticks(indx,状态,旋转=90)
plt.紧_布局()
plt.show()

Oops!!很抱歉,这不是我得到的错误。你打开的部分似乎只有状态和关闭的部分。@ScottBoston是的,它喜欢那些
states
打开的部分中没有数据的部分。
plt.xticks(…,rotation=90)
plt.tight\u layout()