使用R Markdown knit to HTML时如何显示ggplot2及mapview可视化图表
解决RMarkdown knit HTML时ggplot2和mapview图表不显示的问题
以下是针对你遇到问题的排查和解决步骤:
1. 确认knitr代码块全局设置
确保你的knitr全局选项没有隐藏图表的配置。可以将全局设置修改为:
knitr::opts_chunk$set(echo = TRUE, include = TRUE, fig.show = "asis")
include = TRUE:确保代码块的输出(包括图表)被包含在最终文档中fig.show = "asis":让图表按生成顺序直接显示
2. 调整ggplot2代码的输出方式
在RMarkdown中,ggplot2对象无需手动调用print(),直接将对象放在代码块末尾即可自动渲染。修改你的示例代码:
viz_trips_by_weekday <- ggplot(data = trips_by_weekday)+ geom_col(mapping = aes(x = weekday, y = ride_count, fill = customer_type), position = 'dodge')+ labs(title = "Annual Ride Count By Weekday", x = "Day of Week", y = "Number of Rides") # 直接输出对象,无需print() viz_trips_by_weekday
如果坚持使用print(),确保它是代码块的最后一行,没有被后续代码覆盖或隐藏。
3. 处理mapview交互式地图的特殊要求
mapview生成的是交互式HTML widget,需要确保YAML配置支持自包含文档,并且正确输出:
- 首先在YAML的
html_document中明确添加selfcontained: yes(默认值为yes,但显式设置可避免意外):
title: "###" author: "###" date: "###" output: html_document: toc: yes toc_depth: 2 toc_float: yes selfcontained: yes # 确保包含所有依赖资源 pdf_document: toc: yes toc_depth: '2'
- 输出mapview地图时,直接调用函数即可,无需额外处理:
# 示例mapview代码 mapview::mapview(your_spatial_data)
4. 确认knit目标输出格式
确保在RStudio中点击knit按钮时,选择的是html_document而非pdf_document——因为pdf不支持mapview的交互式图表,若误选pdf输出,mapview图表会被忽略。
内容的提问来源于stack exchange,提问作者Pat Tarantino
相关产品推荐
相关产品推荐

