with widgets libreria graphs graficos examples dygraph con javascript r ggplot2 d3.js dendrogram

javascript - widgets - libreria plotly in r



¿Cómo puedo producir tramas como esta? (1)

Siempre puede crear la gráfica a mano: con gráficos base, el parámetro fig permite agregar gráficos dentro de otra gráfica.

# Sample data n <- 100 k <- 6 d <- matrix(rnorm(k*n),nc=k) d[,2] <- d[,1] # To help check the results colnames(d) <- LETTERS[1:k] x <- apply(d,2,cumsum) r <- hclust(dist(t(d))) # Plot op <- par(mar=c(0,0,0,0),oma=c(0,2,0,0)) plot(NA,ylim=c(.5,k+.5), xlim=c(0,4),axes=FALSE) # Dendrogram. See ?hclust for details. xc <- yc <- rep(NA,k) o <- 1:k o[r$order] <- 1:k for(i in 1:(k-1)) { a <- r$merge[i,1] x1 <- if( a<0 ) o[-a] else xc[a] y1 <- if( a<0 ) 0 else yc[a] b <- r$merge[i,2] x2 <- if( b<0 ) o[-b] else xc[b] y2 <- if( b<0 ) 0 else yc[b] lines( 3+c(y1,i,i,y2)/k, c(x1,x1,x2,x2), lwd=k-i ) xc[i] <- (x1+x2)/2 yc[i] <- i } # Time series axis(2,1:k,colnames(d)[r$order],las=1) u <- par()$usr for(i in 1:k) { f <- c(0,3,i-.5,i+.5) f <- c( (f[1]-u[1])/(u[2]-u[1]), (f[2]-u[1])/(u[2]-u[1]), (f[3]-u[3])/(u[4]-u[3]), (f[4]-u[3])/(u[4]-u[3]) ) par(new=TRUE,fig=f) plot(x[,r$order[i]],axes=FALSE,xlab="",ylab="",main="",type="l",col="navy",lwd=2) box() } par(op)

(Después de escribir esto, me doy cuenta de que probablemente es más fácil de hacer con el layout ...)

Me he topado con este tipo de diagrama que realiza clusters jerárquicos sobre un conjunto determinado de datos de series temporales. ¿Puede alguien decirme cómo dibujar tales tramas?

Estoy abierto a implementaciones en R o Javascript, especialmente con d3.js