Порядок обратной оси ggplot для факторов

Это базовый сюжет с месяцами, упорядоченными снизу вверх от одного до двенадцати. Я хочу заказать их сверху донизу через двенадцать.

library(tidyverse)
library(nycflights13)
library(ggridges)
ggplot(weather %>% filter(temp > 50), aes(x = temp, y = as.factor(month))) + 
  geom_density_ridges()

Capture.png

Оба эти решения дают ошибки. Какое правильное решение?

# 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))))

Другие вопросы по тегам