У меня есть 2D-график поверхности, сделанный с помощью ggplot, который я раскрашиваю, чтобы показать значение его третьего измерения. Эти данные широко варьируются в направлении Z, поэтому я преобразовал их в логарифмическое преобразование, прежде чем выполнять интерполяцию для построения графика.
Мне нравятся варианты по умолчанию, выбранные алгоритмом построения для разрывов. Однако метки для этих разрывов теперь являются значениями журнала.
Текущий код окраски:
scale_fill_viridis(breaks = waiver(), labels = waiver())
waiver() — это флаг базового алгоритма для использования значений по умолчанию. В идеале я хотел бы сделать что-то вроде
scale_fill_viridis(breaks = waiver(), labels = sprintf("%.1f", 10^waiver()))
но это ломается с ошибкой Error in 10^my_breaks : non-numeric argument to binary operator
Как я могу математически преобразовать значения по умолчанию для меток в значения, которыми они были бы до преобразования журнала?