2013-02-28 62 views
3

我有一棵树,有很多分支。这是我的代码来绘制树。问题在于标签彼此重叠,特别是在树的底部。有什么方法可以绘制树,使标签不重叠?在R中,如何使分类树的分支在图中不重叠?

par(mfrow=c(1,1)) 
plot(prunedTree, type=c("uniform")) 
text(prunedTree) 

注意 - 我使用了“type = c(”uniform“))”“,因为它帮助可读性更低的分支。另外,prunedTree是树形包中的类“树”。

下面是当前正在生产的样品。

enter image description here

编辑:代码完全重现该问题。

load(url("https://spark-public.s3.amazonaws.com/dataanalysis/samsungData.rda")) 
samsungData$subject <- factor(samsungData$subject) 
samsungData$activity <- factor(samsungData$activity) 
samsungData <- samsungData[, !c(duplicated(names(samsungData)))] 
names(samsungData) <- gsub("[.]", "", names(samsungData)) 
samsungData <- data.frame(samsungData) 
trainDF <- samsungData[samsungData$subject %in% c(1,3,5,6),] 
tree1 <- tree(activity ~ ., data=trainDF) 
plot(tree1) 
text(tree1) 
+1

你能提供一个重复的例子,让我们一起工作? (是否有任何理由你使用** tree **而不是** rpart **?) – joran 2013-02-28 22:35:38

+0

@joran关于你的第二个问题,因为我不知道它存在或为什么我更喜欢它。我会发布一些代码。 – Jim 2013-02-28 22:43:30

回答

3

除了上面列出joran迹象,可以用参数玩:

  • srt到rtotate文本。
  • 给出文本

例如不同的颜色:

plot(tree1) 
text(tree1,col=rainbow(5)[1:25],srt=85,cex=0.8) 

enter image description here

3

您有几种常规选项:

  1. 使用更宽的图形设备。 (即png(...,width = 1200,height = ...)
  2. 热收缩使用cex = 0.5(或更小)
  3. 使用更简洁柱(即变量)名称
  4. 前三个的一些组合的文本。

我以为我可以得到text.tree使用较少的有效数字来标记分割,但我似乎无法做到这一点。 rpart默认情况下只显示4位数字,这样也可以为您节省一些空间。