rmarkdown渲染结果中未能够显示代码运行的结果图片,blogdowncontent部分有关该post的文件结构如下

> list.files("D:/blog/test2/content/post/covid",full.names = TRUE)
[1] "D:/blog/test2/content/post/covid/china-Covid19-map.md"    
[2] "D:/blog/test2/content/post/covid/china-Covid19-map.Rmd"   
[3] "D:/blog/test2/content/post/covid/china_prov_full_map.json"
[4] "D:/blog/test2/content/post/covid/data.xlsx"               
[5] "D:/blog/test2/content/post/covid/font"

其中china-Covid19-map.Rmd是核心文件,china_prov_full_map.json储存了中国矢量边界地图数据数据,data.xlsx是绘图数据,font是绘图的字体数据。

渲染结束后在浏览器打开结果如下

结果

我自行百度发现这个问题已经有相关提问,链接如下

1.Generated plots not showing in blogdown

2.Blogdown Images Fail to Render on Site/Viewer

于是我将我的set up部分改成

knitr::opts_chunk$set(
  echo = TRUE,
  echo = TRUE,
  fig.path = "static/",
  fig.align = "center"
)

相当于添加了静态文件夹,使得hugo能够存储结果图片进来?然后再次试一下

发现这个问题仍旧存在,并且生成的china-Covid19-map.md对图片P的链接代码为

library(extrafont)
library(showtext)
library(stringr)
library(ggsflabel)
library(ggspatial)
showtext_auto(enable = TRUE)
font_add("Times", "./font/Times New Roman.ttf")
font_add("KaiTi", "./font/KaiTi.ttf")

province_sf <- read_sf('china_prov_full_map.json') %>%
  mutate(across(.cols = 省代码,.fns = as.character)) %>% 
  left_join(x = .,y = data,by = c("省代码" = "provincecode")) %>% 
  mutate(confirmed_dis = case_when(
    is.na(confirmed) ~ "0~100",
    confirmed <= 100 ~ "0~100",
    confirmed <= 500 ~ "100~500",
    confirmed <= 1000 ~ "500~1000",
    confirmed <= 1500 ~ "1000~1500",
    confirmed <= 2000 ~ "1500~2000",
    confirmed <= 3000 ~ "2000~3000",
    TRUE ~ ">3000"
  ))
p <- ggplot(province_sf) + 
  geom_sf(aes(fill = confirmed_dis),size = 0.1,color = "black") +
  scale_fill_manual(
    values = c("0~100" = "#FEF1DD",
               "100~500" = "#FDDDB2",
               "500~1000" = "#FDC38D", 
               "1000~1500" = "#FC9863",
               "1500~2000" = "#EF6648",
               "2000~3000" = "#D42C1C",
               ">3000" = "#A80000")
  ) +
  geom_sf_label_repel(
    data = province_sf %>% 
      dplyr::filter(str_sub(省,nchar(省)) %in% c("省","区","市")),
    aes(label = 省),family = 'KaiTi',
    nudge_x = -5, nudge_y = -5, seed = 10
  ) +
  guides(fill = guide_legend(nrow = 2,byrow = TRUE)) + 
  theme(plot.title = element_text(size = 16,hjust = 0.5,vjust = 0.5,face = "bold",family = "KaiTi"),
        plot.subtitle = element_text(size = 12,hjust = 0.5,vjust = 0.5,face = "bold",family = "KaiTi"),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        # panel.grid.major = element_blank(),
        # panel.grid.minor = element_blank(),
        axis.ticks = element_blank(),
        legend.position = "bottom",
        legend.text = element_text(family = "Times"),
        legend.title = element_text(family = "KaiTi")) + 
  labs(fill = "确诊人数", 
       title = "新冠肺炎确诊病例省份分布",
       subtitle = paste0("2020-02-25 确诊病例 ",sum(province_sf$confirmed,na.rm = TRUE))) + 
  annotation_scale(location = "bl", width_hint = 0.3) +
  annotation_north_arrow(location = "tr", which_north = "false",
                         pad_x = unit(0.9, "cm"),
                         pad_y = unit(0.4, "cm"),
                         style = north_arrow_fancy_orienteering(
                           text_family = "KaiTi"
                         )) + 
  coord_sf(ylim = c(2068000, 6387786))
p
<img src="static/unnamed-chunk-4-1.png" width="672" style="display: block; margin: auto;" />

static文件夹中确实存在unnamed-chunk-4-1.png文件,所以为何仍然显示不出来呢?还请大佬指点

> sessionInfo()
R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22000)

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936  LC_CTYPE=Chinese (Simplified)_China.936   
[3] LC_MONETARY=Chinese (Simplified)_China.936 LC_NUMERIC=C                              
[5] LC_TIME=Chinese (Simplified)_China.936    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.10      rstudioapi_0.14  knitr_1.43       servr_0.27       magrittr_2.0.3  
 [6] tidyselect_1.2.0 R6_2.5.1         rlang_1.1.1      fastmap_1.1.1    fansi_1.0.4     
[11] dplyr_1.1.2      tools_4.2.2      xfun_0.39        utf8_1.2.3       cli_3.6.1       
[16] htmltools_0.5.5  yaml_2.3.7       digest_0.6.31    tibble_3.2.1     lifecycle_1.0.3 
[21] processx_3.8.1   later_1.3.1      vctrs_0.6.3      promises_1.2.0.1 ps_1.7.5        
[26] glue_1.6.2       evaluate_0.21    rmarkdown_2.22   blogdown_1.17.3  pillar_1.9.0    
[31] compiler_4.2.2   generics_0.1.3   jsonlite_1.8.5   httpuv_1.6.11    pkgconfig_2.0.3 

    15357902809 不要设置 fig.path 选项。

    最简单的办法是把文件夹结构调整一下,china-Covid19-map.Rmd 文件移动到 china-Covid19-map/index.Rmd。即:新建一个文件夹,把 Rmd 文件重命名为 index.Rmd 移过去。

      yihui 哈哈哈,我试了下,真的有用,感激谢大!顺便问问,这个操作怎么就能打通任督二脉成功运行了?(笑哭脸)