考慮到這個資料框架:
data <- data. frame(ID = rep(1。 6),
Loc = c("A"。 "B","D"。 "A", "D", "B"),
TimeDiff = c(NA, 4. 5,2. 2,2.1,3。 4,7.2))
我們有相同的ID,并在多個地點(Loc)進行觀察。觀察結果是按照它們發生的順序排列的,所以第一個觀察是在Loc == A,第二個是在Loc == B,以此類推。TimeDiff是每個連續觀察之間的時間段。我做了下面的圖來顯示Locs之間隨時間變化的 "路徑":
library(tidyverse)
data%>%。
mutate(RowNumber = row_number()。 xend = lead(Loc)。 yend = lead(RowNumber))%> %
ggplot() 。
geom_segment(aes(x = Loc, y = RowNumber, xend = xend, yend = yend)。 箭頭=箭頭()。 大小= 2)
我的主要問題是:我們如何根據變數TimeDiff對每個箭頭的大小進行加權,以及我們如何用TimeDiff的相應值來標記每個箭頭?意思是連接前兩個觀察點的箭頭,即Loc == A和Loc == B將比后面的箭頭更粗,因為這兩個觀察點之間的TimeDiff(4.2)更大。
一個附帶問題。
注意Loc的3個層次包括A、B和D。假設在B和D之間有另一個層次C,我想將其包含在圖中。怎樣才能把這個東西扔進去呢?
uj5u.com熱心網友回復:
這里有一個可能的解決方案,資料稍作修改。
其缺點是要硬編碼nudge_x和nudge_y:
# modified data NA replaced by 0 and last value replaced by NA as we only have 5 differences in 6 datapoints.
data <- data. frame(ID = rep(1。 6),
Loc = c("A"。 "B","D"。 "A", "D", "B"),
TimeDiff = c(0,/span> 4. 5,2. 2,2.1,3。 4,NA))
library(tidyverse)
data%>%。
mutate(RowNumber = row_number()。 xend = lead(Loc)。 yend = lead(RowNumber))%> %
ggplot() 。
geom_segment(aes(x = Loc, y = RowNumber, xend = xend, yend = yend),
arrow = arrow()。 size = data$TimeDiff)
geom_label(aes(x = Loc, y = RowNumber, xend = xend, yend = yend, label = data$TimeDiff),
nudge_x = c(0.3, 0。 5, -1。 1, -0。 7),
nudge_y = seq(0。 2,6, 0。 1))
uj5u.com熱心網友回復:
好吧,不完全是一個漂亮的數字,但希望這足以讓你開始。關鍵是把size放在aes里面,并使用scale_size_identity()把它連接到你的一個變數。
所以在這種情況下,不是所有的片段都有size = 2,而是由TimeDiff中的值來控制大小,例如,4.5,2.2,等等。注意,我將NA替換為0用于size的呼叫,并將"NA"用于標簽。
library(tidyverse)
dat <- data. frame(ID = rep(1。 6),
Loc = c("A"。 "B","D"。 "A", "D"。 "B"),
TimeDiff = c(NA, 4. 5,2. 2,2.1,3。 4,7.2) %>%
mutate(RowNumber = row_number(),
xend = lead(Loc)/span>,
yend = lead(RowNumber))
dat %>%。
ggplot(aes(x = Loc, y = RowNumber。 xend = xend。 yend = yend))
geom_segment(aes(size = replace_na(TimeDiff, 0))。 箭頭=箭頭()
geom_label(aes(label = replace_na(TimeDiff, "NA"))
scale_size_identity()
#> 警告。洗掉了1條含有缺失值的記錄(geom_segment)。

創建于2021-09-20,由reprex包(v2.0.0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/322181.html
標籤:
下一篇:如何使用小冊子地圖的嵌套模塊


