Я пытаюсь сделать многостолбчатую гистограмму из словаря, который я создал, но не уверен, как правильно его отобразить.
Я пытался использовать библиотеку панд без особого успеха.
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.Я пытаюсь построить каждую строку как «кольцо» на оси х, а количество «совпадений» для каждого значения 0.-0.9 на оси у.Я хочу сделать 3 графика, по одному для каждого индекса y (cond, pow и mom) в словаре.F_ct печатает так:
ring = 10 cond {0,1: 1, 0,2: 1, 0,30000000000000004: 1, 0,4: 1, 0,5: 1, 0,6: 1, 0,7000000000000001: 1, 0,8: 1, 0,9: 1}
ring = 10 pow {0.9: 9}
ring = 10 mom {0.9: 9}
ring = 11 con {0.1: 4, 0.2:4, 0,30000000000000004: 4, 0,4: 4, 0,5: 4, 0,6: 4, 0,7000000000000001: 4, 0,8: 4, 0,9: 4}
кольцо = 11 Pow {0,8: 18, 0,9: 18}
кольцо = 11 мамы {0,8: 18, 0,9: 18}
и т. Д.
График показывает 0,1-0,9 на оси X вместо "кольцо "номер.Я хочу, чтобы каждое значение 0,1-0,9 имело собственный столбец на каждое «кольцо» с количеством «совпадений», указанным счетчиком.Таким образом, график cond «кольцо 10» будет иметь 1 «совпадение» для каждого значения 0,1–0,9, а «кольцо 11» будет иметь 4 «совпадения» для каждого значения 0,1–0,9.И на графике пау будет 9 «совпадений» на «кольце 10» для 0,9 и ни одного для 0,1–0,8, а для «кольца 11» будет 18 «совпадений» для 0,8 и 18 для 0,9 и ни одного для 0,1–0,7.ETC.
Спасибо!