堆积条形图想要配对不匹配的数据python

时间:2017-03-30 16:51:51

标签: python bar-chart

我想要将两个列表组合成一个带标签的堆积条形图。

Males = [('Surfing', 832), ('Swimming', 653), ('Fishing', 314), 
         ('Spearfishing', 299), ('Bathing', 132), ('Diving', 102), 
         ('Wading', 89), ('Standing', 70), ('Scuba diving', 65)]

Females = [('Swimming', 141), ('Wading', 53), ('Surfing', 45), 
           ('Snorkeling', 33), ('Standing', 27), ('Bathing', 16), 
           ('Scuba diving', 9), ('Boogie boarding', 8), ('Walking', 8)]

我想要它,以便图表显示每个活动中的总人数,同时显示不同颜色的性别细分。然而,由于名单的顺序不匹配,所有活动也没有,即只有女性才行走。没有男性的等同物。然后这个栏应该单独出现。

我写的代码不能这样做。请给我一般指导。我可以使用for循环遍历每个元素和if语句,看看它是否也存在于其他性别数据中?如果是这样,将它们加在一起。

我真的不明白如何利用未知数量的酒吧来做到这一点。

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,使用pandas有一个相当简单的解决方案。基本上,您会将每组数据放入数据框中,然后对活动进行外部合并。我没有包含代码,因为您特别要求提供准则。

结果:

enter image description here

如果您出于某种原因无法使用pandas,您可以制作ordered dictionary,并在列表中填充您的女性和男性数据。因此,有序字典的键将是活动,值将是包含活动到计数的映射的常规字典。那么绘制每一个都很简单。我再次没有包含代码,因为您特别要求提供准则。

结果如下:

enter image description here