Python 是否更改matplotlib中单个条的颜色?

Python 是否更改matplotlib中单个条的颜色?,python,python-3.x,dictionary,matplotlib,Python,Python 3.x,Dictionary,Matplotlib,我有两本字典- 被选中的候选人和被拒绝的候选人。 结构如下图所示- 所选={“名称”:分数}#与被拒绝的相同 我想用绿色显示选中的候选人,用红色显示被拒绝的候选人。 我该怎么做 我试过这种方法,但它给了我一些荒谬的结果: #Husain Shaikh #test 3 matplotlib import matplotlib.pyplot as plt selected={"Husain":92, "Asim":65,"Chirag": 74 } rejected={"Absar":70,"pre

我有两本字典- 被选中的候选人和被拒绝的候选人。 结构如下图所示- 所选={“名称”:分数}#与被拒绝的相同 我想用绿色显示选中的候选人,用红色显示被拒绝的候选人。 我该怎么做

我试过这种方法,但它给了我一些荒谬的结果:

#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()

你可以试试这样的

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()

给你。我只显示代码的相关/修改部分

# 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
输出


我不想绘制直方图。你可以看到我上面的方法,你能展示一个相似但正确的方法吗?你的“拒绝”和“选择”条都在相同的x位置上绘制,所以它们相互重叠,这就是为什么你会看到一些奇怪的混合。在条形图命令中输入aloha=0.3,您将看到两个条形图彼此后面