我正在用RMarkdown创建一个包含一些交互式绘图的HTML文件.在一些帮助下,我创建了一个下拉列表来过滤更改绘图的变量,但它使用了SHINY,所以我不能将其呈现为一个HTML文件.有没有什么方法可以不用SHINY添加一个下拉列表,这样我就可以拥有我的HTML文件了?
代码:
knitr::opts_chunk$set(echo = TRUE)
library(dplyr)
library(ggplot2)
library(plotly)
# data
data <- data.frame(
anoobito = sample(2019:2023),
diadasemana = sample(c("Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"), 23000, replace = TRUE)
)
dia <- data %>%
group_by(anoobito, diadasemana) %>%
tally %>%
mutate(diadasemana = factor(diadasemana, levels = c("Domingo","Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado")))
# Create a ggplot object
gg <- ggplot(dia, aes(x = diadasemana, y = n, group = anoobito)) +
geom_line(aes(color = anoobito), size = 2) +
geom_point(aes(color = anoobito), size = 3) +
theme_minimal(base_size = 15) +
scale_y_continuous(limits = c(0,1000), expand = expansion(mult = c(0, .1))) +
theme(legend.position = "bottom",
axis.line = element_line(colour = "black"),
axis.text.x=element_text(colour="black"), axis.text.y=element_text(colour="black")) +
labs(
x = "Ano do Óbito", # label do eixo X
y = "Número de Óbitos",
caption = "**Fonte**: SIM, SMS-RJ. Dados sujeitos a alterações.")
# Create a plotly object from ggplot
p <- ggplotly(gg)
# Add a dropdown list for the variable "anoobito"
p <- p %>% layout(showlegend = F,
updatemenus = list(
list(
x = 1.5,
y = 0.8,
buttons = list(
list(method = "restyle",
args = list("visible", list(TRUE, FALSE, FALSE, FALSE, FALSE)),
label = "2019"),
list(method = "restyle",
args = list("visible", list(FALSE, TRUE, FALSE, FALSE, FALSE)),
label = "2020"),
list(method = "restyle",
args = list("visible", list(FALSE, FALSE, TRUE, FALSE, FALSE)),
label = "2021"),
list(method = "restyle",
args = list("visible", list(FALSE, FALSE, FALSE, TRUE, FALSE)),
label = "2022"),
list(method = "restyle",
args = list("visible", list(FALSE, FALSE, FALSE, FALSE, TRUE)),
label = "2023")
)
)
)
)
p
看起来很奇怪我想删除图例,当我 Select 2019年时,它应该只显示2019年,而不是所有年份.图未显示geom_point.