点和线不会连接

1 r ggplot2

我试图连接我的情节中的点并尝试geom_point()+geom_line()但它不起作用。

下面的代码只是为了积分。有没有人有任何想法为什么geom_line()不添加任何行?

DensityE = read.csv("DensityElk.csv", header = TRUE)
str(DensityE)

DensityE$Date <- factor(DensityE$Date, levels=
        c("20-May","3-Jun",
      "17-Jun","1-Jul","16-Jul", 
      "22-Jul", "15-Aug"), order=TRUE)

ggplot(data=DensityE, aes(Date,Density)) + 
geom_point(aes(shape = factor(Genus)), size = 4, 
position="jitter") + 
theme_bw() + xlab("Date") +
ylab("Density per m2") + ggtitle("COP 1992") +
opts(legend.key = theme_blank()) + 
opts (legend.title = theme_blank())+
opts(legend.text = theme_text(size=9))
Run Code Online (Sandbox Code Playgroud)

Ben*_*ker 6

因为您在Datex 轴上使用因子 ( ),所以ggplot2不会自动连接跨 x 值的线。两种解决方案是(1)geom_line(aes(group=Genus))或(2)geom_line(aes(x=as.numeric(Date)))

构造数据框:

DensityE <- data.frame(
    Date=c("1-Jul","16-Jul","22-Jul","3-Jun","17-Jun"),
    Genus=c("Epeorus","Epeorus","Epeorus","Rhyacophila","Rhyacophila"),
    Density=c(3.5,3.25,1,1,0.75))
Run Code Online (Sandbox Code Playgroud)

制作情节:我做了一些改变

  • 更改theme_blankelement_blankopttheme与最新ggplot2版本保持一致
  • 去除抖动——如果你想要抖动以及连接相同点的点和线,你必须手动将抖动添加到 y 值。

代码:

 library(ggplot2)
 ggplot(data=DensityE, aes(Date,Density)) + 
    geom_point(aes(shape = factor(Genus)), size = 4)+
    geom_line(aes(group=Genus))+
 theme_bw() + xlab("Date") +
 ylab("Density per m2") + ggtitle("COP 1992") +
 theme(legend.key = element_blank()) + 
 theme(legend.title = element_blank())+
 theme(legend.text = element_text(size=9))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明