所以我有这个水平条形图,我想用其他颜色突出显示某些标签(或关键字)。 这是我的水平线图:
我想将关键字“自然”和“全景”设置为红色。我尝试了这段代码,但是它不起作用:
f, ax = plt.subplots(figsize=(15,15))
plt.autoscale(enable=True, axis='y', tight=True) # tight layout
plt.barh(df['keywords'], df['number']) # base barplot with blue color
plt.barh(df[df['keywords']=='nature'], df['number'], color='red') # overlay barplot with red color
plt.barh(df[df['keywords']=='panorama'], df['number'], color='red') # overlay barplot with red color
ax.tick_params(labelsize=18)
plt.title('Difference average of cluster 3')
答案 0 :(得分:1)
您可以尝试添加两列,即'number_red','number_blue':
df['number_red']=np.where((df['keywords']=='nature')|(df['keywords']=='panorama'),df['number'],0)
df['number_blue']=np.where((df['keywords']!='nature')&(df['keywords']!='panorama'),df['number'],0)
“ number_red”仅显示属于“ panorama”或“ nature”的数字,而用0填充关键字的数字。 'number_blue'则相反。 (您可以打印df看看) 因此,如果您仅在条形图中覆盖这两列:
plt.barh(df['keywords'],df['number_red'], color='red')
plt.barh(df['keywords'],df['number_blue'], color='blue')
数字将是互补的,但会显示所需的颜色。我希望这会有所帮助!