You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在flexdashboard中创建带下拉菜单的标签页?

问题修正:Flexdashboard中实现带下拉菜单的标签页

原代码存在的问题

  • 错误将子标签标题### map 3写在了R代码块内部,flexdashboard的标签页标题必须是独立的Markdown标题,不能嵌套在代码块中
  • 输出配置中启用了storyboard: true,该模式与tabset标签页功能冲突,会导致下拉菜单无法正常渲染
  • 子标签对应的地图代码没有拆分到各自的代码块中,结构混乱
  • addMarkers参数拼写错误:clusterOption应为clusterOptions

修正后的完整代码

---
title: "地图展示"
output:
  flexdashboard::flex_dashboard:
    social: menu
    source: embed
---

```{r setup, include=FALSE}
library(leaflet)
library(leaflet.extras)
# 设置随机种子保证数据可复现
set.seed(123)
# 生成数据
id = 1:1000
long = 2.2945 + rnorm(1000, 0.1085246, 0.1)
lat = 48.8584 + rnorm(1000, 0.009036273, 0.1)
my_data_1 = data.frame(id, lat, long)

id = 1:1000
long = 2.2945 + rnorm(1000, 0.1085246, 0.1)
lat = 48.8584 + rnorm(1000, 0.009036273, 0.1)
my_data_2 = data.frame(id, lat, long)

Column {.tabset}

标签页1:热力图1

map1 = my_data_1 %>%
  leaflet() %>%
  addTiles() %>%
  addHeatmap(lng=~long, lat=~lat, max=100, radius=20, blur=10)
map1

标签页2:切换地图 {.tabset .tabset-dropdown}

热力图2

map2 = my_data_2 %>%
  leaflet() %>%
  addTiles() %>%
  addHeatmap(lng=~long, lat=~lat, max=100, radius=20, blur=10)
map2

聚类标记图1

map3 = my_data_1 %>% 
  leaflet() %>% 
  addTiles() %>% 
  addMarkers(clusterOptions=markerClusterOptions())
map3

标签页3:聚类标记图2

map4 = my_data_2 %>% 
  leaflet() %>% 
  addTiles() %>% 
  addMarkers(clusterOptions=markerClusterOptions())
map4
## 关键修改说明
1. 移除`storyboard: true`配置,消除与标签页功能的冲突
2. 将下拉菜单的子标签标题(`#### 热力图2`、`#### 聚类标记图1`)放在代码块外部,确保flexdashboard能识别为下拉选项
3. 修正`addMarkers`的参数拼写错误,保证聚类标记功能正常
4. 拆分每个地图的生成代码到独立的R代码块,逻辑更清晰
5. 添加`set.seed(123)`固定随机数生成结果,方便调试和复现

内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:06:30