更改 geom_spoke 中箭头的方向

sil*_*ita 3 r ggplot2

有没有办法geom_spoke()让箭头指向给定数据的方向?如果我有带有位置 (x,y) 和角度的数据,那么使用 似乎是理想的选择geom_spoke,但我希望能够选择箭头应指向的方向(远离坐标或指向它们;我想要后者)。

在此示例中,我添加了geom_point()内容以说明我的数据的位置;半径是随机选择的,所以我想要箭头现在所在的位置(当然,而不是点):

set.seed(1)
df       <- expand.grid(x = 1:10, y=1:10)
df$angle <- runif(100, 0, 2*pi)

ggplot(df, aes(x, y)) +
  geom_point()        +
  coord_equal()       +
  geom_spoke(aes(angle = angle), radius = 0.7, arrow=arrow(length = unit(0.2,"cm")))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Hen*_*rik 5

in指的是,它有参数arrow:geom_spokegrid::arrowends

"last"、"first"或之一"both",指示在线条的哪一端绘制箭头。

因为您没有显式设置ends参数,所以使用了默认值"last",即段末尾的箭头。

一个小例子:

p <- ggplot(df, aes(x = x, y = y, angle = angle)) +
  geom_point() 
Run Code Online (Sandbox Code Playgroud)

默认值ends:

# omitting the ends argument, like in your attempt:
p + geom_spoke(arrow = arrow(length = unit(0.2, "cm")), radius = 0.7)

# or writing out the ends argument explicitly:
p + geom_spoke(arrow = arrow(ends = "last", length = unit(0.2, "cm")), radius = 0.7)
Run Code Online (Sandbox Code Playgroud)

线段开头的箭头,设置ends = "first":

p + geom_spoke(arrow = arrow(ends = "first"), radius = 0.7)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述