如何使用python中字典中的数据框制作多列条形图

2024-07-05 12:02:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从我创建的字典中制作多列条形图,但不确定如何正确地绘制它

我曾尝试使用熊猫图书馆,但收效甚微

                            if x==0:
                                IR10_cnt=IR10_cnt+1
                                f_cond_r10.append(a)
                                f_pow_r10.append(b)
                                f_mom_r10.append(c)
                                f_ct[x]=[Counter(f_cond_r10), Counter(f_pow_r10), Counter(f_mom_r10)]
                                f_ct[x]=[dict(Counter(f_cond_r10)),dict(Counter(f_pow_r10)), dict(Counter(f_mom_r10))]
                            elif x==1:
                                IR11_cnt=IR11_cnt+1
                                f_cond_r11.append(a)
                                f_pow_r11.append(b)
                                f_mom_r11.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r11)),dict(Counter(f_pow_r11)), dict(Counter(f_mom_r11))]
                            elif x==2:
                                IR12_cnt=IR12_cnt+1
                                f_cond_r12.append(a)
                                f_pow_r12.append(b)
                                f_mom_r12.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r12)),dict(Counter(f_pow_r12)), dict(Counter(f_mom_r12))]
                            elif x==3:
                                IR13_cnt=IR13_cnt+1
                                f_cond_r13.append(a)
                                f_pow_r13.append(b)
                                f_mom_r13.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r13)),dict(Counter(f_pow_r13)), dict(Counter(f_mom_r13))]
                            elif x==4:
                                IR14_cnt=IR14_cnt+1
                                f_cond_r14.append(a)
                                f_pow_r14.append(b)
                                f_mom_r14.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r14)),dict(Counter(f_pow_r14)), dict(Counter(f_mom_r14))]
                            elif x==5:
                                IR15_cnt=IR15_cnt+1
                                f_cond_r15.append(a)
                                f_pow_r15.append(b)
                                f_mom_r15.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r15)),dict(Counter(f_pow_r15)), dict(Counter(f_mom_r15))]
                            elif x==6:
                                IR16_cnt=IR16_cnt+1
                                f_cond_r16.append(a)
                                f_pow_r16.append(b)
                                f_mom_r16.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r16)),dict(Counter(f_pow_r16)), dict(Counter(f_mom_r16))]
                            elif x==7:
                                IR17_cnt=IR17_cnt+1
                                f_cond_r17.append(a)
                                f_pow_r17.append(b)
                                f_mom_r17.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r17)),dict(Counter(f_pow_r17)), dict(Counter(f_mom_r17))]
                            elif x==8:
                                IR18_cnt=IR18_cnt+1
                                f_cond_r18.append(a)
                                f_pow_r18.append(b)
                                f_mom_r18.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r18)),dict(Counter(f_pow_r18)), dict(Counter(f_mom_r18))]
                            elif x==9:
                                IR19_cnt=IR19_cnt+1
                                f_cond_r19.append(a)
                                f_pow_r19.append(b)
                                f_mom_r19.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r19)),dict(Counter(f_pow_r19)), dict(Counter(f_mom_r19))]
                            elif x==10:
                                IR20_cnt=IR20_cnt+1
                                f_cond_r20.append(a)
                                f_pow_r20.append(b)
                                f_mom_r20.append(c)
                                f_ct[x]=[dict(Counter(f_cond_r20)),dict(Counter(f_pow_r20)), dict(Counter(f_mom_r20))]
                            elif x==11:
                                f_cond_r21.append(a)
                                f_pow_r21.append(b)
                                f_mom_r21.append(c)
                                IR21_cnt=IR21_cnt+1
                                f_ct[x]=[dict(Counter(f_cond_r21)),dict(Counter(f_pow_r21)), dict(Counter(f_mom_r21))]
                            elif x==12:
                                f_cond_r22.append(a)
                                f_pow_r22.append(b)
                                f_mom_r22.append(c)
                                IR22_cnt=IR22_cnt+1
                                f_ct[x]=[dict(Counter(f_cond_r22)),dict(Counter(f_pow_r22)), dict(Counter(f_mom_r22))]
                            elif x==13:
                                f_cond_r23.append(a)
                                f_pow_r23.append(b)
                                f_mom_r23.append(c)
                                IR23_cnt=IR23_cnt+1
                                f_ct[x]=[dict(Counter(f_cond_r23)),dict(Counter(f_pow_r23)), dict(Counter(f_mom_r23))]
                            elif x==14:
                                f_cond_r24.append(a)
                                f_pow_r24.append(b)
                                f_mom_r24.append(c)
                                IR24_cnt=IR24_cnt+1
                                f_ct[x]=[dict(Counter(f_cond_r24)),dict(Counter(f_pow_r24)), dict(Counter(f_mom_r24))]
                            elif x==15:
                                f_cond_r25.append(a)
                                f_pow_r25.append(b)
                                f_mom_r25.append(c)
                                IR25_cnt=IR25_cnt+1
                                f_ct[x]=[dict(Counter(f_cond_r25)),dict(Counter(f_pow_r25)), dict(Counter(f_mom_r25))]

    for x in range(0, 16):
        for y in range(0,3):
            if y==0:
                print("ring=", x+10, "cond", f_ct[x,y])

            elif y==1:
                print("ring=", x+10, "pow", f_ct[x,y])

            elif y==2:
                print("ring=", x+10, "mom", f_ct[x,y])
         print("") 


    df = pd.DataFrame.from_dict({'Ring 10 Cond': pd.Series(f_ct[0,0]), 'Ring 10 Pow': pd.Series(f_ct[0,1]), 'Ring 10 mom': pd.Series(f_ct[0,2])})
    ax = df.plot.bar()
    labs = [round(float(t.get_text()), 1) for t in ax.axes.get_xmajorticklabels()]
    ax.set_xticklabels(labs)
    plt.xlabel("Ring")
    plt.ylabel("Matches")
    plt.show()

f_ct字典包含15行3列,每个索引包含一个0.1-0.9之间的“匹配”计数器。我试图将每一行在x轴上绘制为一个“环”,并在y轴上为每个值0-0.9绘制“匹配”的数量。我想做3个图,字典中每个y索引(cond、pow和mom)对应一个图。Fu ct的打印也是如此

环=10秒{0.1:1,0.2:1,0.3000000000004:1,0.4:1,0.5:1,0.6:1,0.700000000000001:1,0.8:1,0.9:1}

环=10波{0.9:9}

环=10个月{0.9:9}

环=11秒{0.1:4,0.2:4,0.3000000000004:4,0.4:4,0.5:4,0.6:4,0.700000000000001:4,0.8:4,0.9:4}

环=11波{0.8:18,0.9:18}

环=11个月{0.8:18,0.9:18}

等等

该图在x轴上显示为0.1-0.9,而不是“环”号。我希望每个值0.1-0.9在每个“环”上都有自己的列,并由计数器指示“匹配”的数量。因此,第二个图“环10”的每个值0.1-0.9都有1个“匹配”,而“环11”的每个值0.1-0.9都有4个“匹配”。而pow图将在“第10环”上有9个“匹配”表示0.9,在0.1-0.8之间没有匹配,“第11环”将有18个“匹配”表示0.8,18个表示0.9,在0.1-0.7之间没有匹配。等等

谢谢大家!


Tags: counterdictctelifmomappendcntpow