Skip to content

Instantly share code, notes, and snippets.

@kohske
Created August 28, 2013 04:28
Show Gist options
  • Select an option

  • Save kohske/6362140 to your computer and use it in GitHub Desktop.

Select an option

Save kohske/6362140 to your computer and use it in GitHub Desktop.
ggplot2 visualization with xkcd style. Output: https://twitter.com/kohske/status/372575134806077440/photo/1
h <- rnorm(1000, 160, 10)
w <- rnorm(1000, 0, 10)/(pmin(abs(h-160), 1)) + (h-60)*0.75
d <- data.frame(x=w, y=h)
p <- ggplot(data=d, aes(x=x,y=y)) + geom_point(colour = "gray50", alpha=0.5, size = 5)
mapping <- aes(x=x,
y=y,
scale=scale,
ratioxy=ratioxy,
angleofspine = angleofspine,
anglerighthumerus = anglerighthumerus,
anglelefthumerus = anglelefthumerus,
anglerightradius = anglerightradius,
angleleftradius = angleleftradius,
anglerightleg = anglerightleg,
angleleftleg = angleleftleg,
angleofneck = angleofneck,
color = color,
size = size )
dataman <- data.frame( x= c(60, 100, 60, 100), y=c(145, 145, 185, 185),
scale = c(5,5,10,10),
ratioxy = c(1, 5, 0.5, 1),
angleofspine = seq(- pi / 2, -pi/2 + pi/8, l=4) ,
anglerighthumerus = -pi/6 + runif(4, min = -pi/3, max = pi/3),
anglelefthumerus = pi + pi/6 + runif(4, min = -pi/3, max = pi/3),
anglerightradius = 0 + runif(4, min = -pi/3, max = pi/3),
angleleftradius = runif(4,- pi/4, pi/4),
angleleftleg = 3*pi/2 + pi / 12 + runif(4, min = -pi/3, max = pi/3) ,
anglerightleg = 3*pi/2 - pi / 12 + runif(4, min = -pi/3, max = pi/3),
angleofneck = runif(4, min = 3 * pi / 2 - pi/10 , max = 3 * pi / 2 + pi/10),
color=c("A","B","C","D"),
size = c(1, 3, 1, 2))
p + xkcdman(mapping,dataman) + theme_xkcd() + xkcdaxis(c(40, 120), c(130, 190)) + labs(x = "Weight kg", y = "Height cm") +
guides(size = "none", colour = "none")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment