在树状图中的翘曲标签

时间:2016-07-21 06:38:28

标签: r classification

我正在使用几个树形图(ctree,evtree,rpart,chaid),我依赖于分类数据。使用文本标签描述数据级别。 在绘图中,不清楚显示的文本是属于左节点还是右节点。

http://tinypic.com/r/eqds3s/9

是否可以扭曲绘图中的文本标签,或者为左右节点中显示的文本提供略微不同的垂直对齐?

根据要求,这是一个在图中产生这样一个问题的代码:

     <- data.frame(
  y = as.factor(sample(1:3,200,r=T)),
  x1 = as.factor(sample(1:3,200,r=T)),
  x2 = as.factor(sample(1:3,200,r=T)),
  x3 = as.factor(sample(1:3,200,r=T)),
  x4 = as.factor(sample(1:3,200,r=T))
)


Df1[1:5] <- lapply(Df1[1:5], function(x) factor(x, levels = c(1,2,3),labels = c("long long long long long text","text1","lorem ipsum dolor")))


library("partykit")
library("rpart")
library("evtree")
library("CHAID")


rp <- rpart(y ~ .,data=Df1, minbucket=30) 
plot(as.party(rp))
ct <- ctree(y~ . , data = Df1, minbucket=50)
plot(ct)
ev <- evtree(y ~ ., data = Df1, maxdepth = 5)
plot(ev)
ctrl <- chaid_control(minsplit=90, minbucket=30, minprob=0.05,alpha2=0.01, alpha3=-1, alpha4=0.01)
chaid1 <- chaid( y ~ ., data= Df1, control=ctrl)
plot(chaid1,cex=0.6)

1 个答案:

答案 0 :(得分:0)

使用?plot.party中的参数无法看到这是如何实现的。但是,您可以将\n(新行)添加到因子级别。

levels(Df1$x2)[1] <- "long long long \n long long text"
plot(as.party(rp))

enter image description here