Plotar linha desconectada em ggplot [duplicado]
Quero criar um gráfico com linhas desconectadas usando ggplot
# Sample data
x <- seq(1:100)
y <- c(rnorm(25, mean = 1, sd = 1), rnorm(25, mean = 2, sd = 1), rnorm(25, mean = 3, sd = 1), rnorm(25, mean = 4, sd = 1))
z <- rep(1:4, each = 25)
tempdf <- data.frame(cbind(x,y,z))
Usando código
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z), color = "red", size = 1)
Eu recebo esta saída
No entanto, quero criar algo como (observe que as linhas vermelhas não estão conectadas nas etapas)
Tentei usar, geom_segment
mas não consegui descobrir o jeito certo
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_segment(x = x, y = z, xend = x+25, yend = z)
dá isso
Respostas
2 GregorThomas
Use uma group
estética para definir quais linhas estão conectadas:
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z, group = z), color = "red", size = 1)
(Isso funciona facilmente para seus dados de amostra group = z
porque você deseja que as linhas sejam conectadas se tiverem o mesmo z
valor E os z
valores forem únicos. Uma forma mais robusta seria adicionar uma coluna para essa finalidade.)
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino