Ggplot2 сортирует ось X по дате начала таймфреймов

Мой график произвольно отсортирован в алфавитном порядке по оси Y.

Вместо этого мне нужно, чтобы он был отсортирован по датам начала на оси x.

Я пробовал «переупорядочить» и изменить порядок уровней факторов - безуспешно.

Как отсортировать график по начальным датам таймфреймов по оси x, чтобы самый старый был первым?

Спасибо за любую наводку!

#Dataframe
data <- data.frame(name = c('Alex','Bobby','Chris','Zack'),
                   start = c('20.09.1949','04.10.1982','21.11.2007','28.09.2017'),
                   end = c('29.10.1957','27.10.1998', '28.10.2009','14.03.2018'),
                   Team = c('Right','Wrong','Wrong','Right'))

#Plot 
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=Team)) +
  geom_segment(size=4) +
  labs(title='Overview', size= 6, x='Tenure', y='Judge') +
  scale_colour_manual(values = c('red', 'black', 'green' , 'grey')) +
  theme_wsj() + 
  theme(axis.title = element_text(),text = element_text(size=5), axis.text.x = element_text(angle=90, hjust=1)) +
  theme(axis.text.y = element_text(lineheight = 2, size = 6))
Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это:

library(dplyr)
library(ggplot2)
#Plot
data %>%
  mutate(start=as.Date(start,'%d.%m.%Y'),
         end=as.Date(end,'%d.%m.%Y'),
         name=factor(name,levels = unique(name),ordered = T)) %>%
  mutate(start=as.character(start),
         end=as.character(end)) %>%
  ggplot(aes(x=start, xend=end, y=name, yend=name, color=Team)) +
  geom_segment(size=4) +
  labs(title='Overview', size= 6, x='Tenure', y='Judge') +
  scale_colour_manual(values = c('red', 'black', 'green' , 'grey')) +
  theme(axis.title = element_text(),text = element_text(size=12),
        axis.text.x = element_text(angle=90, hjust=1)) +
  theme(axis.text.y = element_text(lineheight = 2, size = 6))

Выход:

это работает, и я думаю, я искал это имя = фактор (имя, уровни = уникальный (имя), упорядоченный = T)) почему вы используете функцию «мутировать» до этого? спасибо

TomTe 18.12.2020 20:51

@TomTe Привет, Том, я использовал mutate() для преобразования переменных в факторы, чтобы они могли правильно вписаться в ваш график. Надеюсь, это помогло, дайте мне знать, сработал ли код, и рассмотрите возможность принятия ответа, если решение помогло. Всегда рады Вам помочь!

Duck 18.12.2020 21:42

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