保存本地ggplot图形并在可反应表中使用

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

我想生成小的 ggplot 图形并在

reactable
中内联使用它们。我可以生成所需的图(每行 1 个),但是当将它们插入表中时,它们会显示为损坏的图像。我想这与文件路径有关?

注意:这最终将在动态生成图形的闪亮应用程序中使用。我在

reactable
中执行此操作,因为我计划将其与可扩展行功能结合起来。

这是一些可重现的代码

library(tidyverse)
library(palmerpenguins)
library(reactable)

#get list of species names
species <- penguins %>% select(species ) %>%
  distinct() %>% pull()

# make a simple df
plot_data <- penguins %>%
  group_by(species) %>%
  summarize(mean = mean(bill_length_mm, na.rm=T))

# for loop to generate and save plots
for(i in species){
  tmp_plot <- 
    plot_data %>%
    filter(species == i) %>%
    ggplot(aes(y=species, x=mean))+
    geom_col()+
    theme_void()
  
  file_name <- i %>% janitor::make_clean_names()
  
  ggsave(plot = tmp_plot,
         filename = paste0("plots/",file_name,".png"),
         width=4,
         height=.5)
  
}

#make a table
species %>%
  as.data.frame() %>%
  rename("species" = 1) %>%
  mutate(plot = paste0("<img src='plots/", janitor::make_clean_names(species),".png' />")) %>%
  reactable(
    columns = list(
      plot = colDef(html = TRUE,
                    resizable = TRUE,
                    show=T)
    ))

这是我得到的: enter image description here

作为检查,这样做会加载图形:

magick::image_read("plots/adelie.png")
所以我不确定我错过了什么。

r ggplot2 reactable
1个回答
0
投票

虽然这篇文章可能很旧,并且请求者可能已经解决了这个问题,但这是我对遇到同样问题的人的贡献:

希望这些提示可以帮助到您。享受吧!!

© www.soinside.com 2019 - 2024. All rights reserved.