Порядок обратной оси ggplot для факторов
Это базовый сюжет с месяцами, упорядоченными снизу вверх от одного до двенадцати. Я хочу заказать их сверху донизу через двенадцать.
library(tidyverse)
library(nycflights13)
library(ggridges)
ggplot(weather %>% filter(temp > 50), aes(x = temp, y = as.factor(month))) +
geom_density_ridges()
Оба эти решения дают ошибки. Какое правильное решение?
# BROKEN SOLUTION 1
ggplot(weather %>% filter(temp > 50), aes(x = temp, y = as.factor(month))) +
geom_density_ridges() +
scale_y_continuous(trans = "reverse")
Ошибка: Дискретное значение подается в непрерывную шкалу. Кроме того: Предупреждающие сообщения: 1: В Ops.factor(x): '-' не имеет значения для факторов. 2: преобразование ввело бесконечные значения в непрерывной оси Y.
а также
# BROKEN SOLUTION 2
ggplot(weather %>% filter(temp > 50), aes(x = temp, y = as.factor(month))) +
geom_density_ridges() +
scale_y_discrete(limits = rev(levels(as.factor(month))))
Ошибка в is.factor(x): объект 'month' не найден
1 ответ
Решение
Пытаться scale_y_discrete(limits = rev(levels(as.factor(weather$month))))