ggplot2 中的迭代和 for 循环 (R)

问题描述 投票:0回答:1

就像我说的,我正在尝试在 ggplot 中创建一个 for 循环。我知道这很难做到,而且可能有更好的方法来做到这一点,但我需要搅动许多这些图,每个图都有不同的数据集(不同长度),而 for 循环似乎是更合乎逻辑的选择。 我的想法是手动创建一个双图,我想做的是将箭头从 (0,0) 点添加到相应的结束坐标。到目前为止的代码

endx<-rnorm(10)
endy<-rnorm(10)
dd = data.frame(endx, endy)

g<-ggplot(dd, aes(x= endx, y= endy))+theme_bw()
g<-g + geom_point() 
  
for (i in endx) {

g <- g+ geom_segment(aes(x=0, y=0, xend=endx[i], yend=endy[i]), arrow = arrow(length=unit(.5, 'cm')))

}
g

但它什么也没做。

有什么想法吗?

使用 ggplot 和从另一个程序推断的特征值创建加载和/或双标图。

r for-loop ggplot2
1个回答
0
投票

Print
是你的朋友。保持接近你的语法:

set.seed(01032024)
dd = data.frame(endx = rnorm(10), endy = rnorm(10))

library(ggplot2)
g = ggplot(dd, aes(x = endx, y= endy)) + 
  geom_point() +
  theme_bw()

for (i in seq_len(nrow(dd))) 
  print(g + geom_segment(aes(x = 0, y = 0, xend = endx[i], yend = endy[i]), 
                         arrow = arrow(length = unit(.5, 'cm'))))
© www.soinside.com 2019 - 2024. All rights reserved.