ggplot geom_line用于特定因子级别

时间:2016-12-21 13:13:32

标签: r ggplot2

有没有办法在ggplot中为特定因子级别添加一行? 这个简单的例子可以提供一个基础来解释我想说的话。在这种情况下,我想避免绘制最后一个级别。

ggplot(BOD, aes(x=factor(Time), y=demand, group=1)) + geom_line() + geom_point()

enter image description here

1 个答案:

答案 0 :(得分:1)

您只需创建一个NA的新变量 - Time == 7的值:

BOD$demand2[BOD$Time<7] <- BOD$demand[BOD$Time<7]

然后绘图:

ggplot(BOD, aes(x=factor(Time), y=demand2, group=1)) + 
  geom_line() + 
  geom_point() +
  theme_classic()

您也可以使用data.table - package:

的功能即时执行此操作
library(data.table)
ggplot(data = as.data.table(BOD)[Time==7, demand := NA],
       aes(x=factor(Time), y=demand, group=1)) + 
  geom_line() + 
  geom_point() +
  theme_classic()

要回答您的评论,您可以在7处包含以下点:

ggplot(BOD, aes(x=factor(Time), y=demand2, group=1)) + 
  geom_line() + 
  geom_point(aes(x=factor(Time), y=demand)) +
  theme_classic()