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()