在R中,如何使分类树的分支在图中不重叠?

时间:2013-02-28 22:30:42

标签: r tree plot

我有一棵树,树枝很多。这是我绘制树的代码。问题是标签彼此重叠,特别是朝向树的底部。有没有办法绘制树以使标签不重叠?

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)

2 个答案:

答案 0 :(得分:3)

您有几种常规选择:

  1. 使用更宽的图形设备。 (即png(...,width = 1200,height = ...)
  2. 使用cex = 0.5(或更小)
  3. 缩小文字
  4. 使用更简洁的列(即变量)名称
  5. 前三者的某种组合。
  6. 我以为我可以让text.tree在标记分割时使用较少的有效数字,但我似乎无法做到这一点。 rpart 默认情况下仅使用4位数字,因此也可以节省一些空间。

答案 1 :(得分:3)

除了上面列出的joran指示外,您还可以使用参数:

  • srt来改动您的文字。
  • 为文字提供不同的颜色

例如:

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

enter image description here