Изменение цвета текста в зависимости от значения ax.textPython

Программы на Python
Ответить
Anonymous
 Изменение цвета текста в зависимости от значения ax.text

Сообщение Anonymous »

Я строю горизонтальную гистограмму с процентами, но мне хотелось бы, чтобы значения > 0 были окрашены в зеленый цвет, а отрицательные значения - в красный.

Код: Выделить всё

plt.figure(figsize=(10,6))

clrs = ['b' if (x > 10) else 'gray' for x in data2['BASE VOLUME %']]
ax = sns.barplot(x,y, data=data2, palette=clrs)
ax.set_xlabel('Base Volume',fontsize=15)
ax.set_ylabel('Color Group',fontsize=15)
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)

for i, v in enumerate(data2['BASE VOLUME %']):
ax.text(0 + 0.01*max(data['BASE VOLUME']), i + len(data2)/50, str("{0:.1f}%".format(v)), color='black', fontweight='bold', fontsize=14)

for i, v in enumerate(diff['% Change from last month']):
ax.text(1.06*max(data['BASE VOLUME']), i + len(data2)/50, str("{0:.1f}%".format(v)), color='red', fontweight='bold',
См. график ниже. Значения 21,5%, 10,0% и т. д. должны быть зелеными.

Когда я пробую цвета линий = ['r' if (y < 0) else 'g' for y в diff['% Изменение по сравнению с прошлым месяцем'].values] и меняю color='red' на color='colors'

, я получаю сообщение об ошибке:

Код: Выделить всё

ValueError: Invalid RGBA argument: ('g', 'r', 'g', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r')
Изображение


Подробнее здесь: https://stackoverflow.com/questions/546 ... on-ax-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»