Изменить цвет отдельных полос в matplotlib? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть два словаря - выбранные кандидаты и отклоненные кандидаты.структура выглядит так, как показано ниже - selected = {"name": Score} # то же самое для отклоненных. Я хочу показать выбранных кандидатов зеленым цветом, а отклоненных кандидатов красным.Как я могу это сделать?

Я пробовал этот способ, но это дает мне какой-то абсурдный результат:

#Husain Shaikh
#test 3 matplotlib
import matplotlib.pyplot as plt
selected={"Husain":92, "Asim":65,"Chirag": 74 }
rejected={"Absar":70,"premraj":57}
plt.bar(range(len(selected)),list(selected.values()),color="green")
plt.xticks(range(len(selected)),list(selected.keys()))
plt.bar(range(len(rejected)),list(rejected.values()),color="red")
plt.xticks(range(len(rejected)),list(rejected.keys()))
plt.xlabel("Candidates")
plt.ylabel("Score")
plt.plot()
plt.show()

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вот, пожалуйста.Я только показываю соответствующую / измененную часть кода

# Import numpy, matplotlib and data here

loc_s = np.arange(len(selected))+0.1 # Offsetting the tick-label location
loc_r = np.arange(len(rejected))-0.1 # Offsetting the tick-label location
xtick_loc = list(loc_s) + list(loc_r)
xticks = list(selected.keys())+ list(rejected.keys())

plt.bar(loc_s,list(selected.values()),color="green", width=0.2,label='Selected')
plt.bar(loc_r,list(rejected.values()),color="red", width=0.2,label='Rejected')
plt.xticks(xtick_loc, xticks, rotation=45)

# Labels and legend here

Вывод

enter image description here

0 голосов
/ 13 сентября 2018

вы можете попробовать что-то вроде этого

import matplotlib.pyplot as plt
selected={"Husain":92, "Asim":65,"Chirag": 74 }
rejected={"Absar":70,"premraj":57}     
selected_candidates_number = len(selected)
rejected_candidates_number = len(rejected)
plt.bar(range(selected_candidates_number ),list(selected.values()),color="green")
plt.bar(range(selected_candidates_number,selected_candidates_number +rejected_candidates_number ),list(rejected.values()),color="red")
plt.xticks(range(selected_candidates_number +rejected_candidates_number), list(selected.keys()) + list(rejected.keys()))
plt.xlabel("Candidates")
plt.ylabel("Score")
plt.plot()
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...