r Sunburst 元素在编织到 html 时显示代码而不是交互式绘图

问题描述 投票:0回答:1

我有一个旭日图代码,可以在 Rsutdio 中按预期工作。但是当我将它编织到 html 文档时,它只显示代码而不是实际的绘图。编织时没有显示错误。该代码包含一个“for 循环”,用于创建 4 个具有不同数据的旭日图。

taxonomy <- read.delim("~/Test_Folder/nfcore_ampliseq/qiime2/abundance_tables/abs-abund-table-4.csv")
samples16s<- colnames(taxonomy)[-c(1,2,3,4)]
samples16s
summary(taxonomy)
#Remember to check whether all we find in the data is indeed Bacteria 

#Add a color function for the sunburst
colore <- colorRampPalette(c("#40dc3d", "#4d79d7"))


for (i in samples16s) {
  df <- cbind(taxonomy[c(2,3,4)],taxonomy[i]) #Separate the different samples into their own dataframe 
  names(df)[4] <- "size" #rename the column so that sunburst recognizes it properly.
  tree <- d3_nest(df, value_cols = "size") #create the tree
  sb <- sund2b(tree, color=colore(15), width="100%", showLabels = TRUE, rootLabel = "Bacteria") #create the sunburst visualization
  print(div(
    style="display: flex; align-items:center;",
    sb
  ) )
}

正如我所说,代码在 Rstudio 中运行良好并生成预期的交互对象。但是当编织到 html 文件输出时,它会为每个对象显示以下内容:

## <div style="display: flex; align-items:center;">
##   <div id="htmlwidget-dc9373b627b6f237b124" style="width:100%;height:500px;" class="sund2b html-widget"></div>
##   <script type="application/json" data-for="htmlwidget-dc9373b627b6f237b124">{"x":{"data":{"root":{"children":[{"name":"Margulisbacteria","children":[{"name":"WOR-1","children":[{"name":"O2-12-FULL-45-9","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Bacteria","children":[{"name":"Bacteria","children":[{"name":"Bacteria","size":6,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Omnitrophota","children":[{"name":"Koll11","children":[{"name":"GIF10","size":36,"colname":"X.2"},{"name":"2-02-FULL-51-18","size":0,"colname":"X.2"},{"name":"UBA6215","size":0,"colname":"X.2"},{"name":"2-01-FULL-45-10","size":0,"colname":"X.2"}],"colname":"X.1"},{"name":"Omnitrophia","children":[{"name":"Omnitrophales","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Methylomirabilota","children":[{"name":"Methylomirabilia","children":[{"name":"Rokubacteriales","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Gemmatimonadota","children":[{"name":"Gemmatimonadetes","children":[{"name":"Gemmatimonadales","size":6,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Acidobacteriota","children":[{"name":"Mor1","children":[{"name":"Gp22-AA2","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Patescibacteria","children":[{"name":"ABY1","children":[{"name":"BM507","size":0,"colname":"X.2"},{"name":"SG8-24","size":0,"colname":"X.2"},{"name":"ABY2","size":0,"colname":"X.2"}],"colname":"X.1"},{"name":"Patescibacteria","children":[{"name":"Patescibacteria","size":0,"colname":"X.2"}],"colname":"X.1"},{"name":"Paceibacteria","children":[{"name":"UBA9983","size":0,"colname":"X.2"},{"name":"UBA10092","size":0,"colname":"X.2"}],"colname":"X.1"},{"name":"Gracilibacteria","children":[{"name":"Peribacterales","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Proteobacteria","children":[{"name":"Gammaproteobacteria","children":[{"name":"Burkholderiales","size":323,"colname":"X.2"},{"name":"Acidiferrobacterales","size":8,"colname":"X.2"},{"name":"Pseudomonadales","size":294,"colname":"X.2"},{"name":"Gammaproteobacteria","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Nitrospirota","children":[{"name":"Thermodesulfovibrionia","children":[{"name":"UBA6902","size":0,"colname":"X.2"},{"name":"Thermodesulfovibrionales","size":0,"colname":"X.2"}],"colname":"X.1"},{"name":"Nitrospiria","children":[{"name":"Nitrospirales","size":24,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Desulfobacterota","children":[{"name":"GWC2-55-46","children":[{"name":"GWC2-55-46","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Firmicutes","children":[{"name":"Bacilli","children":[{"name":"Bacilli","size":22,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Desulfobacterota_E","children":[{"name":"MBNT15","children":[{"name":"MBNT15","size":0,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"},{"name":"Bacteroidota","children":[{"name":"Bacteroidia","children":[{"name":"Chitinophagales","size":5,"colname":"X.2"}],"colname":"X.1"}],"colname":"X"}],"name":"root"},"tooltip":null,"breadcrumbs":null},"options":{"colors":["#40DC3D","#40D448","#41CD53","#42C65E","#43BF69","#44B873","#45B17F","#46AA8A","#47A394","#489CA0","#4995AB","#4A8EB6","#4B87C1","#4C80CB","#4D79D7"],"valueField":"size","rootLabel":"Bacteria","showLabels":true}},"evals":[],"jsHooks":[]}</script>
## </div>

我尝试过在没有循环的情况下进行操作(对每个对象进行单独调用),并且一旦编织就可以正常工作。我的循环有什么问题,它没有将对象编织到 html 中?

html r rstudio knitr
1个回答
0
投票

我尝试使用 lapply 而不是循环,但在编织时也不起作用:

#Sunburst as a function
sunburst <- function(sample, tax){
  df <- cbind(tax[c(2,3,4)],tax[sample]) #Separate the different samples into their own dataframe 
  names(df)[4] <- "size" #rename the column so that sunburst recognizes it properly.
  tree <- d3_nest(df, value_cols = "size") #create the tree
  sb <- sund2b(tree, color=colore(15), width="100%", showLabels = TRUE, rootLabel = "Bacteria") #create the sunburst visualization
  print(div(style="display: flex; align-items:center;",sb))
}

lapply(samples16s, sunburst, taxonomy)
© www.soinside.com 2019 - 2024. All rights reserved.