Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Draw All Lines Between Points

Tags:

graph

r

ggplot2

I have the following R code

x <- c(0.01848598, 0.08052353, 0.06741172, 0.11652034)
y <- c(0.4177541, 0.4042247, 0.3964025, 0.4074685)
d <- data.frame(x,y)

ggplot(d, aes(x=x, y=y)) + 
  geom_point(size=4)

It creates the following graph:

RPoints

I would like to draw all possible lines between these points in a repeatable way, ie the number, location, etc of the points may change. Does anyone know of a R function to do something like this. The standard +geom_point() only draws lines between subsequent points on the x axis. My ideal output is shown below. Thanks in advance.

RPoints with lines

BONUS - Does anyone know of a metric (preferably available in R) to estimate the volume of space a set of points takes up? In this case the set of space contained by the outer triangle.

EDIT - Bonus has already been answered in a different SO question here

like image 323
JHowIX Avatar asked Oct 27 '14 20:10

JHowIX


1 Answers

You could always do a transformation to create all the segments you want to plot yourself

x <- c(0.01848598, 0.08052353, 0.06741172, 0.11652034)
y <- c(0.4177541, 0.4042247, 0.3964025, 0.4074685)
d <- data.frame(x,y)

idx <- combn(1:length(x), 2)
dd <- data.frame(x=x[idx[1,]],y=y[idx[1,]], xend=x[idx[2,]], yend=y[idx[2,]])

ggplot(d,aes(x,y)) + 
    geom_point(data=d) + 
    geom_segment(data=dd, aes(xend=xend, yend=yend))

which results in

enter image description here

like image 184
MrFlick Avatar answered Nov 07 '22 18:11

MrFlick