[R] hclust and ggplot2
wwreith
reith_william at bah.com
Wed Dec 14 03:14:49 CET 2011
I saw an example online of taking hclust dendrogram and plotting it using
ggplot2 and thought I would give it a try to see what it would look like. I
get an error when trying to use ggplot; Error: ggplot2 doesn't know how to
deal with data of class phylo. Regular plot works fine but I can't get
ggplot2 to work.
see code below....
rows=100
columns=100
#create matrix
all=matrix(nrow=rows, ncol=columns)
#initialize first column
all[,1]=rbinom(rows,1,.5)
#set probability
probv=.9
for (j in 2:columns)
{
for (i in 1:rows)
{
#set the probability based on the values in the columns to the left
if (all[i,j-1]==1)
{all[i,j]=rbinom(1,1,1-probv)}
else {all[i,j]=rbinom(1,1,probv)}
}
}
#make the first row an outlier
all[5,]=rbinom(columns,1,.1)
all[4,]=rbinom(columns,1,.1)
all[3,]=rbinom(columns,1,.1)
all[2,]=rbinom(columns,1,.1)
all[1,]=rbinom(columns,1,.1)
all[6:9,]=rbinom(columns,1,.1)
all[10:19,]=rbinom(columns,1,.3)
all[20:29,]=rbinom(columns,1,.7)
#1 to 10 .5 11 to 89 .9 .1 90 columns
#calculate the distances for clustering
rand1=dist(all)
#cluster on those distances and plot
hc1=hclust(rand1,"average")
plot(hc1)
## now plot using ggplot and polar coordinates. Line starting
p<-ggplot(data=x) yields the error. This is the online code I found.
library(ape)
library(cluster)
library(ggplot2)
x <- as.phylo(hc1)
p <- ggplot(data=x)
p <- p + geom_segment(aes(y=x,x=y,yend=xend,xend=yend),
colour="blue",alpha=1)
p <- p + geom_text(data=label.phylo(x), aes(x=y, y=x, label=label),family=3,
size=3) + xlim(0, xlim) + coord_polar()
theme <- theme_update( axis.text.x = theme_blank(),
axis.ticks = theme_blank(),
axis.title.x = theme_blank(),
axis.title.y = theme_blank(),
legend.position = "none"
)
p <- p + theme_set(theme)
print(p)
--
View this message in context: http://r.789695.n4.nabble.com/hclust-and-ggplot2-tp4193353p4193353.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list