Я работаю на визуализации некоторые модели в сети передачи данных и некоторые вопросы маркировки линии, где у меня есть несколько классов линий:Легенды и этикетирование гладкие установлены линии + дополнительные линии с использованием ggplot2
- лессовые линии для каждого фактора (сеть)
- базовых при у = 4000
- гам линии, которая действует на всех данные (не учитывается)
Теперь, переполнение стека помогло получить меня в этот момент (спасибо!) , но Я чувствую, как я побежал в кирпичную стену для того, что мне нужно сделать:
A. обеспечивают запись легенды для линии № 3
B. этикеточной каждая линия на графике (в соответствии с # 1 # 2 # 3 - так 8 строк всего)
Вот код, который я до сих пор:
p <- ggplot(network_data, aes(x=timeofday,y=dspeed, colour=factor(network)))+stat_smooth(method="loess",formula=y~x,se=FALSE)
p <- p + stat_function(fun=function(x)4000, geom="line", linetype="dashed", aes(colour="Baseline"))
p <- p + xlab("Time of Day (hr)") + ylab("Download Speed (ms)")
p <- p + theme(axis.line=element_line(colour="black"))
# add the gam line, colouring it purple for now
q <- layer(data=network_data, mapping=aes(x=timeofday,y=dspeed), stat="smooth"
, stat_params=list(method="gam", formula=y~s(x), se=FALSE), geom="smooth", geom_params=list(colour="purple"), position=position_identity())
graph <- p+q # add the layer
#legend
graph <- graph+scale_colour_discrete(name="network")
# set up the origin correctly and axes etc
graph2 <- graph + scale_y_continuous(limits=c(0,6500), expand=c(0,0), breaks=c(0,1000,2000,3000,4000,5000,6000)) + scale_x_datetime(limits=as.POSIXct(c("2015-04-13 00:00:01","2015-04-13 23:59:59")), expand = c(0, 0), breaks=date_breaks("1 hour"), labels=date_format("%H"))
Счастлив рассмотреть другие пакеты, но ggplot2 кажется лучшим до сих пор.
Есть ли способ сделать это «автоматически» (через программирование), поскольку я пытаюсь автоматизировать генерацию этих графиков?
Я сделал доступные данные здесь в виде файла .Rda:
https://dl.dropboxusercontent.com/u/5268020/network_data.Rda
А вот изображение текущего участка:
не уверен, что я понимаю: для A) есть уже легенда, а B) легенда также намечает линии, вы хотите, чтобы текст над каждой строкой обозначал # 1, ..., # 8? – rawr
Линия гаммы не отображается в легенде. Кажется, мне нужно добавить это как слой (q). Я также хочу, чтобы каждая строка помечена как с помощью direct.label. Я не мог понять, как добавить метку для каждой строки в конце встроенной линии (и базовой линии). –
Я думал о других подходах. Хотя, возможно, неуклюжий, я занимаюсь созданием копии данных, заменяя сетевые данные в копии «одним фактором» (называя ее «общий» или что-то подобное), а затем объединяя два набора данных. Я пробую это сегодня вечером. –