Выделите определенную метку барплота - PullRequest
0 голосов
/ 10 марта 2020

Итак, у меня есть горизонтальная полоса, и я хочу выделить некоторые метки (или ключевые слова) другими цветами. Это мой горизонтальный график: enter image description here

Я хочу, чтобы ключевые слова «природа» и «панорама» были красного цвета. Я пробовал этот код, но он не работает:

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

1 Ответ

1 голос
/ 10 марта 2020

Вы можете попытаться добавить два столбца, а именно: «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» показывает только числа, которые принадлежат «панораме» или «природе», в то время как заполняются числа ключевые слова с нуля. 'number_blue' делает противоположное. (Вы можете напечатать df, чтобы посмотреть) Так что, если вы просто наложите эти два столбца на гистограмму:

plt.barh(df['keywords'],df['number_red'],  color='red')
plt.barh(df['keywords'],df['number_blue'], color='blue')

Числа будут дополнительными, но покажут вам нужный цвет. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...