У меня есть дата, хранящая ежедневные / еженедельные / ежемесячные отчеты по нескольким акциям, которые я пытаюсь раскрасить с помощью форматируемого пакета R. Я хочу, чтобы отрицательные результаты были красными, а положительные - зелеными. Или чтобы получить фантазию, используйте отдельный градиент для положительных и отрицательных значений - так, если бы Apple снизился на 10% за день, он был бы темно-красным, а если бы Амазон снизился на 2%, эта ячейка была бы более светло-красной - и наоборот для положительных результатов (светлый и темно-зеленый).
Моя проблема в том, что когда я использую красно-зеленый градиент, цвета в середине выглядят коричневыми - я sh цвета. Приведенный ниже код имеет прозрачный / белый как нижний конец градиента и зеленый как верхний, но его довольно сложно различить.
Мои данные выглядят примерно так:
Stock day week month
AAPL 1.5 3.2 10.6
AMZN 3.2 5.3 4.4
BA -2.1 -4.0 -10.5
PYPL -5 -8.5 -12.1
Green <- "#71ca99"
sign_formatter <- formatter("span",
style = x ~ style(color = ifelse(x > 0, "green",
ifelse(x < 0, "red", "black"))))
sign_formatter(c(-1, 0, 1))
returns <- formattable(stocks_df, align =c("l","c","c","c","c"), list(
`Stock` = formatter("span", style = ~ style(color = "grey",font.weight = "bold")),
daily_return = color_tile("transparent", Green),
week_return = color_tile("transparent", Green),
month_return = color_tile("transparent", Green)))
@ dc37
Я использую точный код, который вы предложили - цвета работают отлично. Но когда я сортирую по еженедельной доходности, как в примере ниже, чтобы получить акции с наилучшей производительностью за неделю, это не сортировка по возрастанию к минимуму (с той же проблемой, когда я пытаюсь сортировать по худшим акциям).
Вот изображение того, как выглядит мой форматируемый вывод. Я также запускаю это в Shiny, не уверен, что это может быть причиной ошибки сортировки.