Dear all,
I run the following code and I get this graphic (Imageattached). What
should I change in my code in order to adjust the overlapping objects?
load("hc1.rda")
library(cluster)
library(ape)
library(dendextend)
library(circlize)
library(RColorBrewer)
labels = hc1$labels
n = length(labels)
dend = as.dendrogram(hc1)
markcountry=as.data.frame(markcountry1)
#Country colors
groupCodes=as.character(as.factor(markcountry[,2]))
colorCodes=rainbow(length(unique(groupCodes)))
#c("blue","red")
names(colorCodes)=unique(groupCodes)
labels_colors(dend) <- colorCodes[groupCodes][order.dendrogram(dend)]
#Region colors
groupCodesR=as.character(as.factor(markcountry[,3]))
colorCodesR=rainbow(length(unique(groupCodesR)))
#c("blue","red")
names(colorCodesR)=unique(groupCodesR)
circos.par(cell.padding = c(0, 0, 0, 0))
circos.initialize(factors = "foo", xlim = c(1, n)) # only one sector
max_height = attr(dend, "height")  # maximum height of the trees
#Region graphics
circos.trackPlotRegion(ylim = c(0, 1.5), panel.fun = function(x, y) {
  circos.rect(1:361-0.5, rep(0.5, 361), 1:361-0.1, rep(0.8,361), col
colorCodesR[groupCodesR][order.dendrogram(dend)], border = NA)
}, bg.border = NA)
#labels graphics
circos.trackPlotRegion(ylim = c(0, 0.5), bg.border = NA,
                       panel.fun = function(x, y) {
                           circos.text(1:361-0.5,
rep(0.5,361),labels(dend), adj = c(0, 0.5),
                                       facing = "clockwise",
niceFacing TRUE,
                                       col = labels_colors(dend), cex 0.45)
                       })
dend = color_branches(dend, k = 6, col = 1:6)
#Dendrogram graphics
circos.trackPlotRegion(ylim = c(0, max_height), bg.border = NA,
                       track.height = 0.4, panel.fun = function(x, y) {
                         circos.dendrogram(dend, max_height = 0.55)
                       })
legend("left",names(colorCodes),col=colorCodes,text.col=colorCodes,bty="n",pch=15,cex=0.8)
legend("right",names(colorCodesR),col=colorCodesR,text.col=colorCodesR,bty="n",pch=15,cex=0.35)
Thanks,
Meriam
Dear all,
I run the following code and I get this graphic (pdf attached). What should
I change in my code in order to adjust the overlapping objects?
load("hc1.rda")
library(cluster)
library(ape)
library(dendextend)
library(circlize)
library(RColorBrewer)
labels = hc1$labels
n = length(labels)
dend = as.dendrogram(hc1)
markcountry=as.data.frame(markcountry1)
#Country colors
groupCodes=as.character(as.factor(markcountry[,2]))
colorCodes=rainbow(length(unique(groupCodes)))
#c("blue","red")
names(colorCodes)=unique(groupCodes)
labels_colors(dend) <- colorCodes[groupCodes][order.dendrogram(dend)]
#Region colors
groupCodesR=as.character(as.factor(markcountry[,3]))
colorCodesR=rainbow(length(unique(groupCodesR)))
#c("blue","red")
names(colorCodesR)=unique(groupCodesR)
circos.par(cell.padding = c(0, 0, 0, 0))
circos.initialize(factors = "foo", xlim = c(1, n)) # only one sector
max_height = attr(dend, "height")  # maximum height of the trees
#Region graphics
circos.trackPlotRegion(ylim = c(0, 1.5), panel.fun = function(x, y) {
  circos.rect(1:361-0.5, rep(0.5, 361), 1:361-0.1, rep(0.8,361), col
colorCodesR[groupCodesR][order.dendrogram(dend)], border = NA)
}, bg.border = NA)
#labels graphics
circos.trackPlotRegion(ylim = c(0, 0.5), bg.border = NA,
                       panel.fun = function(x, y) {
                           circos.text(1:361-0.5,
rep(0.5,361),labels(dend), adj = c(0, 0.5),
                                       facing = "clockwise",
niceFacing TRUE,
                                       col = labels_colors(dend), cex 0.45)
                       })
dend = color_branches(dend, k = 6, col = 1:6)
#Dendrogram graphics
circos.trackPlotRegion(ylim = c(0, max_height), bg.border = NA,
                       track.height = 0.4, panel.fun = function(x, y) {
                         circos.dendrogram(dend, max_height = 0.55)
                       })
legend("left",names(colorCodes),col=colorCodes,text.col=colorCodes,bty="n",pch=15,cex=0.8)
legend("right",names(colorCodesR),col=colorCodesR,text.col=colorCodesR,bty="n",pch=15,cex=0.35)
Thanks,
Meriam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dendro.pdf
Type: application/pdf
Size: 124582 bytes
Desc: not available
URL:
<https://stat.ethz.ch/pipermail/r-help/attachments/20190111/c2c2e8ea/attachment.pdf>
Hi, I'm facing some issues when generationg a circular dendrogram.
The labels on the left which are my countries are overlapping with the
circular dendrogram (middle). Same happens with the labels (regions)
located on the right.
I run the following code and I'd like to know what should be changed
in my code in order to avoid that.
load("hc1.rda")
library(cluster)
library(ape)
library(dendextend)
library(circlize)
library(RColorBrewer)
labels = hc1$labels
n = length(labels)
dend = as.dendrogram(hc1)
markcountry=as.data.frame(markcountry1)
#Country colors
groupCodes=as.character(as.factor(markcountry[,2]))
colorCodes=rainbow(length(unique(groupCodes)))
#c("blue","red")
names(colorCodes)=unique(groupCodes)
labels_colors(dend) <- colorCodes[groupCodes][order.dendrogram(dend)]
#Region colors
groupCodesR=as.character(as.factor(markcountry[,3]))
colorCodesR=rainbow(length(unique(groupCodesR)))
#c("blue","red")
names(colorCodesR)=unique(groupCodesR)
circos.par(cell.padding = c(0, 0, 0, 0))
circos.initialize(factors = "foo", xlim = c(1, n)) # only one sector
max_height = attr(dend, "height")  # maximum height of the trees
#Region graphics
circos.trackPlotRegion(ylim = c(0, 1.5), panel.fun = function(x, y) {
  circos.rect(1:361-0.5, rep(0.5, 361), 1:361-0.1, rep(0.8,361), col
colorCodesR[groupCodesR][order.dendrogram(dend)], border = NA)
}, bg.border = NA)
#labels graphics
circos.trackPlotRegion(ylim = c(0, 0.5), bg.border = NA,
                       panel.fun = function(x, y) {
                           circos.text(1:361-0.5,
rep(0.5,361),labels(dend), adj = c(0, 0.5),
                                       facing = "clockwise",
niceFacing = TRUE,
                                       col = labels_colors(dend), cex = 0.45)
                       })
dend = color_branches(dend, k = 6, col = 1:6)
#Dendrogram graphics
circos.trackPlotRegion(ylim = c(0, max_height), bg.border = NA,
                       track.height = 0.4, panel.fun = function(x, y) {
                         circos.dendrogram(dend, max_height = 0.55)
                       })
legend("left",names(colorCodes),col=colorCodes,text.col=colorCodes,bty="n",pch=15,cex=0.8)
legend("right",names(colorCodesR),col=colorCodesR,text.col=colorCodesR,bty="n",pch=15,cex=0.35)
Cheers,
Myriam
Hi Meriam, I don't have the packages loaded that you use, but a first guess would be to start a wider device. For example, the default x11 device is 7x7, so: x11(width=10) would give you a rectangular output device that might move the columns of labels outward. The same applies for any other device, just explicitly open the wider device before you run your code. Jim On Sat, Jan 12, 2019 at 3:29 AM N Meriam <meriam.nef at gmail.com> wrote:> > Dear all, > > I run the following code and I get this graphic (pdf attached). What should > I change in my code in order to adjust the overlapping objects? > > load("hc1.rda") > library(cluster) > library(ape) > library(dendextend) > library(circlize) > library(RColorBrewer) > > labels = hc1$labels > n = length(labels) > dend = as.dendrogram(hc1) > markcountry=as.data.frame(markcountry1) > #Country colors > groupCodes=as.character(as.factor(markcountry[,2])) > colorCodes=rainbow(length(unique(groupCodes))) #c("blue","red") > names(colorCodes)=unique(groupCodes) > labels_colors(dend) <- colorCodes[groupCodes][order.dendrogram(dend)] > > #Region colors > groupCodesR=as.character(as.factor(markcountry[,3])) > colorCodesR=rainbow(length(unique(groupCodesR))) #c("blue","red") > names(colorCodesR)=unique(groupCodesR) > > circos.par(cell.padding = c(0, 0, 0, 0)) > circos.initialize(factors = "foo", xlim = c(1, n)) # only one sector > max_height = attr(dend, "height") # maximum height of the trees > > #Region graphics > circos.trackPlotRegion(ylim = c(0, 1.5), panel.fun = function(x, y) { > circos.rect(1:361-0.5, rep(0.5, 361), 1:361-0.1, rep(0.8,361), col > colorCodesR[groupCodesR][order.dendrogram(dend)], border = NA) > }, bg.border = NA) > > #labels graphics > circos.trackPlotRegion(ylim = c(0, 0.5), bg.border = NA, > panel.fun = function(x, y) { > > circos.text(1:361-0.5, > rep(0.5,361),labels(dend), adj = c(0, 0.5), > facing = "clockwise", niceFacing > TRUE, > col = labels_colors(dend), cex > 0.45) > > }) > dend = color_branches(dend, k = 6, col = 1:6) > > #Dendrogram graphics > circos.trackPlotRegion(ylim = c(0, max_height), bg.border = NA, > track.height = 0.4, panel.fun = function(x, y) { > circos.dendrogram(dend, max_height = 0.55) > }) > legend("left",names(colorCodes),col=colorCodes,text.col=colorCodes,bty="n",pch=15,cex=0.8) > legend("right",names(colorCodesR),col=colorCodesR,text.col=colorCodesR,bty="n",pch=15,cex=0.35) > > Thanks, > Meriam > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.