r - 我可以在 Sankey Plot (networkD3::sankeyNetwork) 中旋转节点标签吗?
问题描述
我的桑基图有长(ish)节点标签,我想旋转这些标签,以便可以从上到下而不是从左到右读取它们。理想情况下,我可以将这些旋转的节点标签直接放在节点上(而不是边缘)。基本 R 图中是否有类似“srt”选项的内容?
解决方案
您可以将 JavaScript 添加到 HTMLWidgets 以更改某些文本属性/样式...
library(networkD3)
library(htmlwidgets)
links <- data.frame(
src = c(0, 0, 0, 1, 1, 1, 2, 2, 2),
target = c(3, 4, 5, 3, 4, 5, 3, 4, 5),
value = 1
)
nodes <- data.frame(name = paste0("node", 1:6))
sn <- sankeyNetwork(
Links = links,
Nodes = nodes,
Source = 'src',
Target = 'target',
Value = 'value',
NodeID = 'name',
fontSize = 16,
width = 600,
height = 300,
margin = list("left" = 100)
)
sn <- onRender(
sn,
'
function(el,x) {
d3.select(el)
.selectAll(".node text")
.attr("text-anchor", "middle")
.style("writing-mode", "vertical-rl")
.style("text-orientation", "upright");
}
'
)
sn
推荐阅读
- mysql - 计算平均消耗
- testing - Jenkins 错误:致命错误 C1083:无法打开包含文件:'xyz.h':没有这样的文件或目录
- android - 将 XML 字符串解析为 kXML 元素
- android-studio - Android Studio 3.1 构建失败并出现 ClassNotFoundException
- excel - Two way lookup using index and matching
- php - PHP将新数据推送到给定数组中
- ios - 我如何检测光标闪烁的时间 - ios - swift 4?
- citrus-framework - (log) 使用 citrus-framework 监视文件
- c++ - 在 Linux 上使用 boost::serialization 序列化 unique_ptr 的 std::vector 失败
- java - 为什么我们对 CPU 有核心/线程限制?