所以,我在 R 中有一个数据框,其中包含节点号以及不同点的经纬度。其样本数据:
library(tidyverse)
set.seed(4)
node <- seq(1, 10)
lat <- runif(10, 77, 78)
long <- runif(10, 22, 23)
df <- data.frame(node, lat, long)
ggplot()+
geom_point(aes(x=long, y=lat))+
geom_text(aes(x=long, y=lat, label=node), size=5)
Run Code Online (Sandbox Code Playgroud)
[
现在我有一个包含如下路线的列表:
route <- c(1,6,2,3,1,10,4,1,5,8,1,3,7,1)
Run Code Online (Sandbox Code Playgroud)
根据路线的顺序,我想在上一张图上绘制箭头,使其看起来像这样:
如何做呢?我可以使用 geom_path 但它会根据数据框的顺序给出顺序。另外,如果可以为不同的路线添加不同的颜色,例如一种颜色为 1->6->2->3->1,另一种颜色为 1->5->8->1,那就更好了。但当时箭头就足够了。
示例数据框:
no <- rep(1:5, each=2)
type <- rep(LETTERS[1:2], times=5)
set.seed(4)
value <- round(runif(10, 10, 30))
df <- data.frame(no, type, value)
Run Code Online (Sandbox Code Playgroud)
df
no type value
1 1 A 22
2 1 B 10
3 2 A 16
4 2 B 16
5 3 A 26
6 3 B 15
7 4 A 24
8 4 B 28
9 5 A 29
10 5 B 11
Run Code Online (Sandbox Code Playgroud)
现在我想要的是计算每种类型(A 或 B)的 % 值并创建单独的列。期望的输出是这样的:
no pct_A pct_B total_value
1 1 68.75000 31.25000 32
2 2 …Run Code Online (Sandbox Code Playgroud)