У меня есть горизонтальная гистограмма, и я хочу выделить определенные столбцы (с уникальными цветами) на основе строковых значений. Я пробовал использовать функцию 'axhspan' или использовать маски, но ни одна из них не работает хорошо с тиковыми строками. Я знаю, что есть аналогичные вопросы для случаев, когда галочками являются числа (int, float), а не строка.
В моем случае у меня есть данные для 50 стран, и я хочу выделить несколько групп стран другим цветом. Например: США, Канада с желтым; Франция, Великобритания с синим цветом; Япония, Гонконг с апельсином и т.д ..
Вот упрощенная версия моего кода, может кто-нибудь показать мне, как установить другой цвет для подгруппы (например, 'us' и 'canada'). Спасибо!
country_names = ['usa','brazil','canada']
country_rank = pd.Series(np.random.randn(3), index=country_names)
import matplotlib.pyplot as plt
plt.rcdefaults()
fig, ax = plt.subplots(figsize=(10,15)) # set figure size
y_pos = np.arange(len(country_names))
error = np.zeros(len(country_names))
ax.barh(y_pos, country_rank, color='green', xerr=error, align='center', ecolor='black')
ax.set_yticks(y_pos)
ax.set_yticklabels(country_names)
ax.invert_yaxis() # labels read top-to-bottom
ax.set_xlabel('Strategy Score') # add comments on x, y labels.
ax.set_title('Global Large Cap Index Allocation Model')
ax.set_yticklabels(country_names, ha='left', minor=False) #align y tick_labels to the left
ax.yaxis.tick_right() #move y tickers to the right
plt.tight_layout() #avoid text overlap
plt.show()