我正在使用以下代码创建缠结图:
$query = "SELECT * FROM t_user";
$result = mysqli_query($dbc,$query);
$encryption_service = new EncryptionService;
$newUserSet = [];
foreach ($result as $row){
$row['password'] = $encryption_service->encrypt($password);
$newUserSet[] = $row;
}
我要做的是根据节点的位置为线着色。换句话说,如果直线是直线,这意味着它们在两棵树中的位置相同,则颜色应为x,而如果它们已更改,则颜色应为y。
为此提供一个图例来解释颜色也很好。
答案 0 :(得分:1)
您可以在dd
中构造一列,以检查该行是否为水平。在这里,我按标签分组,并检查唯一ID的数量是否为1。然后将该行用于行color
中的aes
参数。
dd <- dd %>% group_by(label) %>% mutate(is.horiz = n_distinct(node) == 1)
pp +
geom_line(aes(x, y, group=label, color = is.horiz), data=dd) +
scale_color_manual(values = c('TRUE' = "lightblue", 'FALSE' = "purple")) +
theme(legend.position = c(.9,.9)) +
labs(color = 'Horizontal Nodes')
您可以玩弄线条的颜色和所有内容的名称。