2013-12-09 66 views
0

我想連接我的情節點,並試圖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)) 
+2

請添加[再現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-可再現-例子)。 DensityElk.csv是什麼樣的? – zx8754

+0

嗨,所述數據的子集是:1-JUL \t Epeorus \t 3.5 16-JUL \t Epeorus \t 3.25 22-JUL \t Epeorus 3君\t Rhyacophila 17君\t Rhyacophila \t 0.75 – user3073118

+0

非常感謝你的幫助!我曾嘗試使用堆棧流程中的代碼,但沒有任何工作。 – user3073118

回答

3

因爲你使用的x軸的因素(Date),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)) 

製作的情節:我已經作出了一些改動

  • 改變theme_blankelement_blankopttheme與最近ggplot2版本一致
  • 刪除抖動 - 如果你wan t抖動連接相同點的點和線,您必須手動將抖動添加到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)) 

enter image description here

+0

嗨,不幸的是它仍然沒有工作。我附上了數據集的樣本,包括日期,種類和密度。我仍然無法弄清楚如何讓它起作用。謝謝你的幫助! – user3073118

+0

1月\t Epeorus \t 3.5 16月\t Epeorus \t 3.25 22月\t Epeorus 3軍\t Rhyacophila 17軍\t Rhyacophila \t 0.75 – user3073118

+0

謝謝!那是行得通的,但僅限於我給你的數據子集。不幸的是,我的數據綿羊非常大,當我使用整個數據集的代碼時,它不起作用。對不起,我真的很陌生並且很掙扎。有沒有一種方法可以使用我的大數據集,或者我必須爲整個事情製作數據框?將會有大約300個密度測量,日期和屬性。 – user3073118