[英]Overlaying plots with a horizontal date in R
我試圖使用ggplot2覆蓋兩個圖,我可以分別繪制它們的圖形,但是我想覆蓋它們以顯示比較。 它們具有相同的y軸。 y軸是0到100的分數,x軸是月份中的特定日期(3周范圍內)
這是我嘗試過的:
data <- read.table(text = Level5avg, header = TRUE)
data2 <- read.table(text = Level6avg, header = TRUE)
colnames(data) = c("x","y")
colnames(data2) = c("x","y")
ggplot(rbind(data.frame(data2, group="a"), data.frame(data, group="b")), aes(x=x,y=y)) +
stat_density2d(geom="tile", aes(fill = group, alpha=..density..), contour=FALSE) + scale_fill_manual(values=c("b"="#FF0000", "a"="#00FF00")) + geom_point() + theme_minimal()
當我這樣做時,我得到一個有幾個點的奇怪圖形,但是我不確定我的代碼是否正確,因為我無法區分數據。 如果可能的話,我想再添加3個(小型)數據集。 如果有可能,如何將其制成折線圖以區分數據集?
注意:由於有這篇文章,我對ggplot可以達到我的目的印象深刻(本網站上的其他幾則文章也建議使用ggplot而不是萊迪思)。 我不確定我想要的東西是否可行,所以我來到了這里。
數據集:
dput(data) structure(list(x = structure(1:6, .Label = c("10/27/2015",
"10/28/2015",
"10/29/2015", "10/30/2015", "10/31/2015", "11/1/2015"), class = "factor"),
y = c(0, 12.5, 0, 0, 11, 43)), .Names = c("x", "y"), class = "data.frame",
row.names = c(NA, -6L))
dput(data2) structure(list(x = structure(1:3, .Label
=c("10/28/2015","10/31/2015",
"11/1/2015"), class = "factor"), y = c(0, 0, 41.5)), .Names = c("x",
"y"), class = "data.frame", row.names = c(NA, -3L))
現在,我已經設法獲得覆蓋圖,但是有沒有一種方法可以組織水平軸? 日期沒有順序。
在我看來,將圖表作為基礎的答案使用的是對數據無用的密度圖。 如果您只是在尋找ggplot()
線圖,則可以執行以下操作(請注意,我在ggplot()
調用之外創建了一個數據ggplot()
,以使其看起來更ggplot()
):
data$group <- "b"
data2$group <- "a"
df <- rbind(data2,data)
df$x <- as.Date(df$x,"%m/%d/%Y")
ggplot(df,aes(x=x,y=y,group=group,color=group)) + geom_line() +
geom_point() + theme_minimal()
請注意,通過轉換日期,日期將以正確的順序單獨結束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.