r - 是否有任何 R 包可用于构建 KPI 树(提供示例)?
解决方案
看起来 ggplot 拥有答案:
# Create data frame to house box information
df.vertices <- data.frame(
metric = c('Revenue per User', 'Revenue per Delivery', 'Deliveries per User', 'Revenue per Item', 'Items per Delivery','Deliveries per Orderer','Orderers per User'),
row = c(10,10,10,3,3,3,3),
column = c(4,12,20,4,12,20,28),
color = c('blue','red','green','red','red','green','green')
) %>%
mutate(numerator = sub('\\ per.*', '', metric)) %>%
mutate(denominator = sub('.*per ', '', metric))
# Create data frame to house connector lines information
df.edges <- data.frame(
xmin = c(4,12,4,20,28,20,2,10,18,2,10,18,26),
xmax = c(4,12,12,20,28,28,6,14,22,6,14,22,30),
ymin = c(4,4,5,4,4,5,10,10,10,3,3,3,3),
ymax = c(5,9,5,9,5,5,10,10,10,3,3,3,3)
)
# Create plot
df.vertices %>%
ggplot() +
geom_rect(aes(xmin = column - 2.5, xmax = column + 2.5, ymin = row-1, ymax = row+1, color=color), fill="white", size=2) +
geom_segment(data=df.edges, aes(x=xmin, xend=xmax, y=ymin, yend=ymax)) +
scale_colour_manual(values = c("blue" = "#619cff", "red"="#f8766d", "green"="#00ba38")) +
geom_text(aes(x=column, y=row+0.3, label=numerator), size=5) +
geom_text(aes(x=column, y=row-0.3, label=denominator), size=5) +
geom_text(aes(x=8, y=10, label="="), size=6) +
geom_text(aes(x=16, y=10, label="*"), size=6) +
geom_text(aes(x=8, y=3, label="*"), size=6) +
geom_text(aes(x=24, y=3, label="*"), size=6) +
theme_void() +
theme(legend.position = "none") +
coord_fixed(ratio = 2)
推荐阅读
- php - 在多语言 travis 项目中选择 php 版本
- c# - 是否有一种简单的方法使用数据注释或自定义类型将存储为 SQL 中的字符串的值用作 EF 中的 DateTime?
- unix - 由于变量范围的问题 - 值不会改变 while 循环
- ios - 线程 1:EXC_BREAKPOINT (code=1, subcode=...) 使用 MKMap View 时
- visual-studio-code - 在 vscode 中创建新文件夹/文件时,Visual Studio 2017 和 Visual Studio Code 不同步
- swift - 在一个输出文件中添加编辑视频的结果以快速导出
- node.js - Windows中grep的npm安装错误
- java - 如何通过 getAttribute() 或 executeScript() 方法提取输入字段的值?
- python - “查询”字典的 Pythonic 方式
- javascript - 获取变体列表中的每个尺寸 ID