R:在ggplot中的两点之间画一条线

R:在ggplot中的两点之间画一条线,r,ggplot2,R,Ggplot2,我有一个数据框,看起来像这样: X Y 100 50 80 60 70 90 110 60 30 20 ... ... 大约100多行。X列和Y列都是数字列 当我绘制这些点时,我想在第一个点(100,50)和任何其他点之间画一条线。换句话说,我想让一条线连接(100,50)和(80,60),一条线连接(100,50)和(70,90),一条线连接(100,50)和(110,60),但是(80,60)和(70,90)之间没有线。所有线都从第一个点开始

我有一个数据框,看起来像这样:

X      Y
100    50
80     60
70     90
110    60
30     20
... ...
大约100多行。X列和Y列都是数字列

当我绘制这些点时,我想在第一个点(100,50)和任何其他点之间画一条线。换句话说,我想让一条线连接(100,50)和(80,60),一条线连接(100,50)和(70,90),一条线连接(100,50)和(110,60),但是(80,60)和(70,90)之间没有线。所有线都从第一个点开始

我没有第三栏。我不能使用组。我不知道我是否还能在ggplot中绘制这张图


谢谢

我们的想法是使用分组。为此,必须添加可用于分组的第三列。实现这一点的一种可能方法如下

首先,我定义示例数据

df <- read.table(text = "X      Y
      100    50
      80     60
      70     90
      110    60
      30     20", header = TRUE)
现在,可以使用ggplot直接创建绘图:

library(ggplot2)
ggplot(new_data, aes(X, Y, group = grp)) + 
   geom_point() + geom_line()

美学
控制哪些点应通过线连接。由于
new_data
中的列
grp
总是将第一行的重复与其他行中的每一行配对,因此与第一行对应的点连接到其他每一点


如果省略
group=grp
,将绘制一条线穿过所有点的绘图。

仅是一个附加组件,可以使用
aes(X,Y,group=1)
连接所有点,而不生成新列。
library(ggplot2)
ggplot(new_data, aes(X, Y, group = grp)) + 
   geom_point() + geom_line()