更改绘图中间的绘图线

时间:2016-12-19 12:57:35

标签: r ggplot2

我有这个测试图

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))

生成

enter image description here

我希望图表上的点之后,使用ggplot使线条虚线。有可能吗?

1 个答案:

答案 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()。子设置的条件以这种方式完成,因此两行之间没有中断。

希望解释清楚。