#r #graph #ggplot2 #time-series #counter
#r #График #ggplot2 #временные ряды #счетчик
Вопрос:
Для следующих данных
time<- c(1:10)
age<- c(11:20)
dummy<-c(0,0,1,0,0,0,0,0,0,0)
d<- data.frame(time, age,dummy)
Я хотел бы создать график, состоящий из 10 прямоугольников, расположенных горизонтально, охватывающих ширину графика, с цветом прямоугольника, соответствующим dummy = 1, отображенным на возраст, и напечатанной меткой возраста. Выглядит примерно так
Я создаю временные ряды графиков поперечного сечения и хочу создать автоматический «счетчик», который показывал бы мне местоположение во времени. Этот график «счетчика» будет уложен поверх другого, более сложного графика, оба связаны с переменной счетчика.
Вопрос:
Какова наилучшая стратегия при создании такого графика с помощью ggplot2?
Комментарии:
1. Пожалуйста, поделитесь кодом построения, который вы пробовали до сих пор, и где у вас возникли проблемы.
Ответ №1:
Вот хотя бы начало. Я буду использовать geom_time
для рисования квадратов
library(ggplot2)
ggplot(d, aes(x=factor(time), y=factor(1), fill=factor(dummy)))
geom_tile(color="black")
geom_text(data=subset(d, dummy==1), aes(x=factor(time), y=factor(1), label=age))
scale_fill_manual(values=c("0"="white", "1"="green"), guide="none")
scale_x_discrete(expand=c(0,0)) scale_y_discrete(expand=c(0,0))
theme_minimal()
Комментарии:
1. Да, это именно то, что я искал! Я начал думать в терминах гистограммы с накоплением и не мог выйти из этого состояния ума. Спасибо, @MrFlick!