r - 使用 sunburstR 显示除 'size' 以外的值
问题描述
以下代码使用 sunburstR 生成一个简单的交互式旭日形(示例取自https://timelyportfolio.github.io/sunburstR/articles/sunburst-2-0-0.html)。当您滚动任何部分时,它会显示“大小”,并且楔形也会根据“大小”进行着色。我希望能够手动指定一个除“大小”之外的值,该值将在滚动时出现,也将用于为楔形上色。这可能吗?换句话说,我希望能够让所有楔子的大小相同,但能够为每个楔子指定不同的值。
library(sunburstR)
library(htmltools)
library(d3r)
dat <- data.frame(
level1 = rep(c("a", "b"), each=3),
level2 = paste0(rep(c("a", "b"), each=3), 1:3),
size = c(10,5,2,3,8,6),
stringsAsFactors = FALSE
)
knitr::kable(dat)
tree <- d3_nest(dat, value_cols = "size")
tree
sb1 <- sunburst(tree, width="100%", height=400)
sb1
解决方案
刚刚看到这个,很抱歉耽搁了。我们可以使用参数指定除大小以外的另一个字段valueField
。以 https://bl.ocks.org/timelyportfolio/616fc81b3bacee0d34a2975d53e9203a为例。
library(treemap)
library(sunburstR)
library(d3r)
# use example from ?treemap::treemap
data(GNI2014)
tm <- treemap(GNI2014,
index=c("continent", "iso3"),
vSize="population",
vColor="continent",
type="index")
tm_nest <- d3_nest(
tm$tm[,c("continent", "iso3", "vSize", "color")],
value_cols = c("vSize", "color")
)
sunburst(
jsondata = tm_nest,
valueField = "vSize",
count = TRUE,
colors = htmlwidgets::JS("function(d){return d3.select(this).datum().color;}")
)
前面的示例还展示了我们如何在data.frame
使用 JavaScript 函数时根据列更改颜色。
这是另一个控制颜色的示例https://github.com/timelyportfolio/sunburstR/issues/17#issuecomment-228448029。
推荐阅读
- gekko - 具有自由终止时间的最优控制 (gekko)
- java - 是否可以让 android 设备尝试连接到之前已连接的任何可用网络?
- javascript - 无法为来自 Selenium Java 的某些 HTML 输入放置超过一个字符的文本
- mongodb - 在 pymongo 中触发
- c# - 如何在 WASM 运行时中运行 UnitTest
- laravel - 存储多态 belongsTo 关系的最佳实践
- r - 删除数据框中包含特定值的因子列
- firebase - > 任务:react-native-async-storage_async-storage:parseDebugLocalResources FAILED
- windows - 我想要一个批处理文件来删除绝对路径位置 (F:\work) 中的所有文件,但名为“txt1.txt”和“txt2.txt”的两个文件除外
- python - 如何在 MongoDB 保存中更改对象的行为?