簡體   English   中英

R 中的 xyplot,一個面板中有多個圖,點陣

[英]xyplot in R with several plots in one panel, lattice

我有一個按以下方式構建的測試數據集:

d <- seq.Date(as.Date("2000-01-01"), as.Date("2000-01-08"), by=1)
df1 <- data.frame(time = d, type = 'type1', value = runif(length(d)))
df2 <- data.frame(time = d, type = 'group1', value = runif(length(d)))
df3 <- data.frame(time = d, type = 'group2', value = runif(length(d)))
df4 <- data.frame(time = d, type = 'pen', value = runif(length(d)))
df <- rbind(df1, df2, df3, df4)

我想使用xyplot函數在點陣中繪制數據,其中面板顯示在一列中。 我可以執行以下操作:

xyplot(value~time | type, df, layout=c(1, length(levels(df$type))))

這樣我有 4 行(我有很多類型)。 但是,實際上我想在同一個面板中用不同的顏色繪制 group1 和 group2(這樣我只有 3 行)。 有人可以幫我解決這個問題嗎?

您可以通過暫時忽略“group1”和“group2”中的數字為所有“group”記錄創建一個面板。 這就是gsub()在下面的代碼中所做的——它將“組”類型中的所有數字替換為"" ,從而創建一個包含三個面板而不是四個面板的條件圖。

現在,剩下要做的就是為所有levels(df$type)定義不同的顏色。 names()操作不是強制性的; 它只是有助於維護不同因子水平的概覽,特別是它們的順序。

# colors
clr = c("black", "black", "orange", "black")
names(clr) = levels(df$type) # for clarification only

# grouped scatterplot
xyplot(value~time | gsub("group[[:digit:]]", "group", type), df, group = type
       , layout = c(1, length(levels(df$type)) - 1), col = clr, cex = 1.2, pch = 20)

坐標圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM