2017-08-23 70 views
0

我試圖繪製預期值和實際值,隨着時間的推移。我有一些數據可以在一張圖上顯示。我對R還很新,我一直在卡住。如何爲多個變量數據添加曲線擬合線?

到目前爲止,我已經能夠在單獨的圖表上得到我想要的,或者如果我把它們放在一起,我似乎無法讓它做我想做的事。

我幾乎在那裏,但我想要的點(點是預期值)與虛線連接。我試着用幾種不同的方法添加一個LOESS行(我的代碼中有一個散列),但是我一直在收到錯誤。

我對R(以及一般編碼)還是一個新手,但我知道除了手動構建圖表外,還必須有一種方法可以做到這一點。但是,我嘗試的每個示例都會執行,但我似乎無法立即讓所有內容都工作。我開始明白每件事情都做了什麼,但有時我迷失在與什麼一起工作的東西中。

Error in xy.coords(x, y, xlabel, ylabel) : 'x' is a list, but does not have components 'x' and 'y'

Error: Don't know how to add RHS to a theme object

我的情節:(無連接的鏈路)

My plot, without links connected

我的數據集

Year,SC_CE_5AGG,SC_ACA,TA_CE_5AGG,TA_ACA,OA_CE_5AGG,OA_ACA,CO_CE_5AGG,CO_ACA 
2005,8,12,5,0,140,100,23,23 
2006,,13,,0,,100,,25 
2007,,13,,0,,102,,37 
2008,,14,,0,,104,,36 
2009,,16,,3,,104,,35 
2010,10,17,6,4,179,106,29,36 
2011,,20,,7,,111,,36 
2012,,23,,7,,116,,33 
2013,,22,,10,,118,,37 
2014,,23,,12,,107,,40 
2015,12,23,8,14,229,112,37,46 
2016,,25,,14,,119,,56 
2017,,28,,13,,120,,60 
2018,,,,,,,, 
2019,,,,,,,, 
2020,16,,10,,292,,48, 
2025,20,,20,,372,,61, 

我的代碼

setwd("C:Users/X/Documents/PROJECTS/R_RcW/Data") 


install.packages("ggplot2") 
install.packages("GGally") 
library(ggplot2) 
library(GGally) 

ALL <- read.csv(file="Rcw_data.csv", header = TRUE) 

#To plot multiple lines, (for a small number of variables) you can use build up the plot manually yourself 
ggplot(data=ALL, aes(Year)) + 
    geom_line(aes(y = SC_ACA, colour = "Shoal Creek")) + 
    lines(scatter.smooth(aes(y = SC_CE_5AGG, colour = "Shoal Creek"))) + 
    geom_line(aes(y = TA_ACA, colour = "Talladega")) + 
    lines(scatter.smooth(aes(y = TA_CE_5AGG, colour = "Talladega"))) + 
    geom_line(aes(y = OA_ACA, colour = "Oakmulgee")) + 
    lines(scatter.smooth(aes(y = OA_CE_5AGG, colour = "Oakmulgee"))) + 
    geom_line(aes(y = CO_ACA, colour = "Conecuh")) + 
    lines(scatter.smooth(aes(y = CO_CE_5AGG, colour = "Conecuh"))) + 
    #lines(lowess(SC_CE_5AGG), col="Shoal Creek") + # lowess line (x,y) 
    #lines(lowess(TA_CE_5AGG), col="Talladega") + # lowess line (x,y) 
    #lines(lowess(OA_CE_5AGG), col="Oakmulgee") + # lowess line (x,y) 
    #lines(lowess(CO_CE_5AGG), col="Conecuh") # lowess line (x,y) 

    theme_classic() + 
    ggtitle("Active clusters of Red-cockaded Woodpeckers") + 
    theme(plot.title = element_text(hjust = 0.5)) + 
    labs(colour="District") + 
    theme(legend.title.align=0.5) + 
    theme(panel.border = element_rect(colour = "black", fill=NA, size=)) + 
    scale_x_continuous(limits=c(2005, 2025), breaks=c(2005,2010,2015,2020,2025)) + 
    xlab("Year") + ylab("Number of active clusters") 
+0

你能改變你的數據在這裏的表現嗎?請參閱在https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

中複製您的數據我不知道大部分含義。我嘗試了「最糟糕的情況」,但仍然出現錯誤。 「掃描時出錯(file = file,what = what,sep = sep,quote = quote,dec = dec,: 第2行沒有9個元素」 – nxl14

+0

添加圖像內聯,格式化清理 – Patrick

回答

0

我想你會好起來的數據重塑長格式是這樣的:

library(tidyverse) 
library(reshape2) 

數據

structure(list(Year = c(2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 
    2011L, 2012L, 2013L, 2014L, 2015L, 2016L, 2017L, 2018L, 2019L, 
    2020L, 2025L), SC_CE_5AGG = c(8L, NA, NA, NA, NA, 10L, NA, NA, 
    NA, NA, 12L, NA, NA, NA, NA, 16L, 20L), SC_ACA = c(12L, 13L, 
    13L, 14L, 16L, 17L, 20L, 23L, 22L, 23L, 23L, 25L, 28L, NA, NA, 
    NA, NA), TA_CE_5AGG = c(5L, NA, NA, NA, NA, 6L, NA, NA, NA, NA, 
    8L, NA, NA, NA, NA, 10L, 20L), TA_ACA = c(0L, 0L, 0L, 0L, 3L, 
    4L, 7L, 7L, 10L, 12L, 14L, 14L, 13L, NA, NA, NA, NA), OA_CE_5AGG = c(140L, 
    NA, NA, NA, NA, 179L, NA, NA, NA, NA, 229L, NA, NA, NA, NA, 292L, 
    372L), OA_ACA = c(100L, 100L, 102L, 104L, 104L, 106L, 111L, 116L, 
    118L, 107L, 112L, 119L, 120L, NA, NA, NA, NA), CO_CE_5AGG = c(23L, 
    NA, NA, NA, NA, 29L, NA, NA, NA, NA, 37L, NA, NA, NA, NA, 48L, 
    61L), CO_ACA = c(23L, 25L, 37L, 36L, 35L, 36L, 36L, 33L, 37L, 
    40L, 46L, 56L, 60L, NA, NA, NA, NA)), .Names = c("Year", "SC_CE_5AGG", 
    "SC_ACA", "TA_CE_5AGG", "TA_ACA", "OA_CE_5AGG", "OA_ACA", "CO_CE_5AGG", 
    "CO_ACA"), class = "data.frame", row.names = c(NA, -17L)) 

    All %>% 
     melt(id="Year") %>% 
     na.omit() %>% 
     mutate(est =factor(grepl("5AGG", variable))) %>% 
     ggplot(aes(Year, value, color=variable, lty=est)) + 
     geom_line() + 
     theme_classic() + 
     ggtitle("Active clusters of Red-cockaded Woodpeckers") + 
     theme(plot.title = element_text(hjust = 0.5)) + 
     labs(colour="District") + 
     theme(legend.title.align=0.5) + 
     theme(panel.border = element_rect(colour = "black", fill=NA, size=)) + 
     scale_x_continuous(limits=c(2005, 2025), 
         breaks=c(2005,2010,2015,2020,2025)) + 
     xlab("Year") + ylab("Number of active clusters") 

grepl用於定義估計值。

+0

這看起來不錯,謝謝你有沒有辦法改變區域的顏色和名稱的顏色,並更改「est」上的標籤? geom_line((aes(y = SC_ACA,color =「Shoal Creek」))+ ( aes(y = SC_CE_5AGG,color =「Shoal Creek」))+ (aes(y = TA_ACA,color =「Talladega」))+ (aes(y = TA_CE_5AGG,color =「Talladega」))+ (y = OA_ACA,color =「Oakmulgee」))+ (aes(y = OA_CE_5AGG,color =「Oakmulgee」))+ (aes(y = CO_ACA,color =「Conecuh」))+ – nxl14

+0

'scale_colour_discrete()'或'scale_colour_manual()'http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/ –

+0

在這個例子中,它表示bp + _____,在我的情況下,我會在那裏填寫什麼?我嘗試了所有,我也嘗試在其他主題下添加它。它不會返回錯誤,但它根本不會執行任何操作。 – nxl14