Vẽ đường bị ngắt kết nối trong ggplot [trùng lặp]
Tôi muốn tạo một biểu đồ với các đường bị ngắt kết nối bằng 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))
Sử dụng mã
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z), color = "red", size = 1)
Tôi nhận được đầu ra này
Tuy nhiên, tôi muốn tạo một cái gì đó giống như (thông báo các đường màu đỏ không được kết nối ở các bước)
Tôi đã thử sử dụng geom_segment
nhưng không thể tìm ra cách phù hợp
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_segment(x = x, y = z, xend = x+25, yend = z)
cho cái này
Trả lời
2 GregorThomas
Sử dụng group
thẩm mỹ để xác định các hàng được kết nối:
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z, group = z), color = "red", size = 1)
(Điều này hoạt động dễ dàng đối với dữ liệu mẫu của bạn group = z
vì bạn muốn các dòng được kết nối nếu chúng có cùng z
giá trị VÀ các z
giá trị là duy nhất. Một cách mạnh mẽ hơn sẽ thêm một cột cho mục đích này.)