我有这个测试图
data <- data.table(c(1:20))
data[, key:=.I]
point <- c(5, 5)
ggplot(data, aes(x = V1, y = key)) + geom_line() + geom_point(aes(x = 5, y = 5))
生成
我希望在图表上的点之后,使用ggplot使线条虚线。有可能吗?
答案 0 :(得分:1)
通过zx8754添加评论,这是一个示例解决方案,通过子设置数据:
library(ggplot2)
library(data.table)
data <- data.table(c(1:20))
data[, key:=.I]
point <- c(5, 5)
data[, lineType1 := ifelse(key >= 5, "2", "0")]
g1 <- ggplot(data, aes(x = V1, y = key)) + geom_line(data=data[key <= 5, ], linetype = "solid") +
geom_line(data=data[key >= 5, ], linetype = "dotted") + geom_point(aes(x = 5, y = 5))
g1
对数据进行子设置是获取自定义线图的最佳方式。值得注意的有趣的是子设置的条件。我已将data=data[key <= 5, ]
用于第一个geom_line()
,将data=data[key >= 5, ]
用于第二个geom_line()
。这意味着我正在key=5
中使用geom_line()
。子设置的条件以这种方式完成,因此两行之间没有中断。
希望解释清楚。