繁体   English   中英

在 ggplot2 中的两点之间绘制线

[英]Plotting lines between two points in ggplot2

我正在寻找一种方法来表示从 ggplot 中给定角度和大小的点脱落的矢量。 我已经计算出这些向量的端点应该是什么,但无法在 ggplot2 中正确找到 plot 的方法。 简而言之,给定 (X,Y,vec.x,vec.y) 的观察结果,我怎么能 plot 一条从 (X,Y) 到 (vec.x,vec.y) 的线不显示 (vec.x,vec.y)。 x,vec.y)?

我的第一个直觉是使用 geom_line,但这似乎依赖于连接不同的观察结果,所以我需要将每个观察结果分成两个观察值,一个带有原始点,一个带有矢量端点。 但是,这似乎相当混乱,并且应该有一种更清洁的方法来实现这一点。 此外,这会使显示原始点但隐藏矢量点变得复杂,因为它们将被绘制在同一个 geom_point 调用中。

这是我正在谈论的形式的示例数据集:

test <- tibble(
  x = c(1,2,3,4,5),
  y = c(5,4,3,2,1),
  vec.x = c(1.5,2.5,3.5,4.5,5.5),
  vec.y = c(4,3,2,1,0)
)

test %>%
  ggplot() +
  geom_point(aes(x=x,y=y),color='red') +
  geom_point(aes(x=vec.x,y=vec.y),color='blue')

我希望实现的是这个,但没有蓝点:1

有什么想法吗? 如果这是一个重复的问题,我们深表歉意。 我做了一些谷歌搜索,但无法为 ggplot 找到类似的问题。

test %>%
    ggplot() +
    geom_point(aes(x=x,y=y),color='red') +
    geom_point(aes(x=vec.x,y=vec.y),color='blue') +
    geom_segment(
        aes(x = x,y = y, xend = vec.x,yend = vec.y),
        arrow = arrow(length = unit(0.03,units = "npc")),
        size = 1
    )

在此处输入图像描述

参考: https://ggplot2.tidyverse.org/reference/geom_segment.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM