r - 将基于列的渐变颜色分配给 r 中的 collapsibletree 的节点
问题描述
我正在尝试使用
and包创建一个collapsibletree
对象。按照这个示例,我尝试为我的树分配颜色,但我没有得到任何东西。library(collapsibleTree)
library(dplyr)
下面提供了几行数据框。该Failure
列是分类的,具有三个选项c("Bar fracture", "Bar pullout", "Coupler failure")
。我创建了一个名为的新列Color
,并将值 1 分配给表示Failure
类型为Bar fracture
的每一行,并将 0 分配给表示其他类型的每一行(其他两个类别)。
> dput(Mostafa[1:27,])
structure(list(`Coupler Type` = c("Headed Bar Coupler", "Headed Bar Coupler",
"Headed Bar Coupler", "Headed Bar Coupler", "Headed Bar Coupler",
"Headed Bar Coupler", "Headed Bar Coupler", "Headed Bar Coupler",
"Headed Bar Coupler", "Grouted Sleeve Coupler", "Grouted Sleeve Coupler",
"Grouted Sleeve Coupler", "Grouted Sleeve Coupler", "Grouted Sleeve Coupler",
"Grouted Sleeve Coupler", "Grouted Sleeve Coupler", "Grouted Sleeve Coupler",
"Grouted Sleeve Coupler", "Grouted Sleeve Coupler", "Grouted Sleeve Coupler",
"Grouted Sleeve Coupler", "Grouted Sleeve Coupler", "Grouted Sleeve Coupler",
"Grouted Sleeve Coupler", "Grouted Sleeve Coupler", "Grouted Sleeve Coupler",
"Grouted Sleeve Coupler"), `Coupler Manufacturer` = c("Headed Reinforcement Corp.",
"Headed Reinforcement Corp.", "Headed Reinforcement Corp.", "Headed Reinforcement Corp.",
"Headed Reinforcement Corp.", "Headed Reinforcement Corp.", "Headed Reinforcement Corp.",
"Headed Reinforcement Corp.", "Headed Reinforcement Corp.", "Dayton Superior",
"Dayton Superior", "Dayton Superior", "Dayton Superior", "Dayton Superior",
"Dayton Superior", "Dayton Superior", "Dayton Superior", "Dayton Superior",
"Splice Sleeve North America", "Splice Sleeve North America",
"Splice Sleeve North America", "Splice Sleeve North America",
"Splice Sleeve North America", "Splice Sleeve North America",
"Splice Sleeve North America", "Splice Sleeve North America",
"Splice Sleeve North America"), `Coupler Model` = c("Xtender® 500/510 Standard Coupler",
"Xtender® 500/510 Standard Coupler", "Xtender® 500/510 Standard Coupler",
"Xtender® 500/510 Standard Coupler", "Xtender® 500/510 Standard Coupler",
"Xtender® 500/510 Standard Coupler", "Xtender® 500/510 Standard Coupler",
"Xtender® 500/510 Standard Coupler", "Xtender® 500/510 Standard Coupler",
"D410 Sleeve-Lock® Grout Sleeve", "D410 Sleeve-Lock® Grout Sleeve",
"D410 Sleeve-Lock® Grout Sleeve", "D410 Sleeve-Lock® Grout Sleeve",
"D410 Sleeve-Lock® Grout Sleeve", "D410 Sleeve-Lock® Grout Sleeve",
"D410 Sleeve-Lock® Grout Sleeve", "D410 Sleeve-Lock® Grout Sleeve",
"D410 Sleeve-Lock® Grout Sleeve", "NMB", "NMB", "NMB", "NMB",
"NMB", "NMB", "NMB", "NMB", "NMB"), `Bar Size` = c("No. 5", "No. 5",
"No. 5", "No. 8", "No. 8", "No. 8", "No. 11", "No. 11", "No. 11",
"No. 5", "No. 5", "No. 5", "No. 8", "No. 8", "No. 8", "No. 11",
"No. 11", "No. 11", "No. 5", "No. 5", "No. 5", "No. 8", "No. 8",
"No. 8", "No. 11", "No. 11", "No. 11"), Failure = c("Bar Fracture",
"Bar Fracture", "Bar Fracture", "Bar Fracture", "Bar Fracture",
"Bar Fracture", "Bar Fracture", "Bar Fracture", "Bar Fracture",
"Bar Fracture", "Bar Pullout", "Bar Pullout", "Bar Fracture",
"Bar Fracture", "Bar Fracture", "Bar Fracture", "Bar Fracture",
"Bar Fracture", "Bar Pullout", "Bar Pullout", "Bar Pullout",
"Bar Fracture", "Bar Fracture", "Bar Fracture", "Bar Fracture",
"Bar Fracture", "Bar Fracture"), Color = c(1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1
)), row.names = c(NA, -27L), class = c("tbl_df", "tbl", "data.frame"
))
我希望根据Color
列中的汇总数字对节点进行着色。当前代码是:
collapsibleTreeSummary(
Mostafa,
hierarchy = c("Coupler Type", "Coupler Manufacturer", "Bar Size", "Failure"),
root = "Mechanical Couplers",
width = 800,
attribute = "Color",
zoomable = FALSE,
collapsed = FALSE
)
我得到的结果是:
如您所见,颜色仅分配给故障级别,不会结转。
例如,对于Headed Bar Coupler
具有所有Failure
类型的第一级,Bar fracture
所有节点都属于该级别Headed Bar Coupler
应该是绿色(相同的颜色,因为所有Failure
s 都是想要的类型。但是例如对于第一级Grouted Sleeve Coupler
,有一些行为零。因此,我想将红色分配给Failure
指示值 0 的节点。中间的所有级别都应通过渐变分配颜色。
所需的输出如下所示:
解决方案
推荐阅读
- typescript - 在 TypeScript 中用 `{}` 标识什么类型
- three.js - 三是 - 如何限制 OrbitControls for OrthographicCamera 中的平移,以便对象(纹理图像)始终在场景中
- javascript - 将鼠标悬停在按钮上时显示文本 JavaScript
- amazon-web-services - dynamodb.transactWriteItems 不是 Lambda 上的函数错误,但在使用 VS Code 时不是
- php - PHP 如何插入嵌套元素 Libreoffice 样式
- r - 有缺失值的条件语句
- mysql - 如何使用 phpMyAdmin 为具有默认空格的 Null 值字段导入 ods 文件
- java - 如何摆脱 KVM VM 中 java 和 php 进程之间的进程间通信中的 tcp-ip 发送延迟
- java - 如何解决由 JAXB 语句引起的异常?
- java - 如何在 Java 中使用 Selenium 提交表单