更改R方图中的标签位置(决策/回归树)

时间:2017-08-09 20:27:06

标签: r plot decision-tree party

partykit包可以很好地表示决策树。我遇到的唯一问题是标签很长然后重叠。是否可以移动这些标签以防止它(参见下图中的蓝色箭头)?

library("rpart")
library("partykit")
rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
party_rp <- as.party(rp)

plot(party_rp)

enter image description here

1 个答案:

答案 0 :(得分:3)

绘制边缘标签testing_on的默认面板功能实现了一些理由策略:标签可以group_size = 3 df.sort_values(['loc_number', 'loc_time'], inplace=True) df2 = ( df .assign( status='testing', loc_counter=df.groupby('loc_number')['loc_number'] .transform(lambda group: [i // group_size for i in range(len(group))])) .groupby(['loc_number', 'loc_counter']) .agg({'loc_time': 'last', 'loc_number': 'last', 'loc_counter': 'count', 'status': 'last'}) .rename(columns={'loc_counter': 'count'}) .reset_index(drop=True) ) df2['ID'] = range(1, len(df2) + 1) df2 = df2[['ID', 'loc_time', 'loc_number', 'status', 'count']] first_group_items = [group[0] for group in df2.groupby('loc_number').groups.itervalues()] last_group_items = [group[-1] for group in df2.groupby('loc_number').groups.itervalues()] df2.loc[last_group_items, 'status'] = 'testing_off' df2.loc[first_group_items, 'status'] = 'testing_on' df2 = df2.set_index('ID') >>> df2 loc_time loc_number status count ID 1 03:28.5 1105 testing_on 3 2 06:25.5 1105 testing 3 3 10:25.6 1105 testing 3 4 13:26.0 1105 testing 3 5 17:26.0 1105 testing 3 6 20:25.7 1105 testing 3 7 24:25.7 1105 testing 3 8 27:25.7 1105 testing_off 2 9 22:25.7 1106 testing_on 3 10 22:35.7 1106 testing_off 1 11 22:33.7 1107 testing_on 1 跨越边缘,edge_simple"alternate"或{ {1}}。但是,这些理由策略仅从最小标签长度"decreasing"开始使用,默认为"increasing"(即没有理由)。有关详细信息,请参阅"equal"

您希望查看一个示例,其中对齐justmin始终应用(即Inf):

?edge_simple

this MSDN page