【发布时间】:2018-11-06 17:31:43
【问题描述】:
我在一个列表中有几个数据框 (40),我需要一种方法来创建一个图表,该图表可以使用 plotly 或 ggplot2 根据所选数据框进行修改
我在下面放了一个示例模板,说明我目前如何创建图表。
aa <- c("José", "Sue")
ab <- c(10, 40)
a <- data.frame(aa,ab)
ba <- c("Marie", "Pablo")
bb <- c(25, 20)
b <- data.frame(ba,bb)
ca <- c("Elizabeth", "Mike")
cb <- c(50, 20)
c <- data.frame(ca,cb)
abc <- list(a,b,c)
names(abc) <- c("a","b","c")
p <- plot_ly() %>%
add_trace(type = 'bar', x = abc$a$aa,
y = abc$a$ab, visible=T, marker = list(color = 'blue')) %>%
add_trace(type = 'bar',x = abc$b$ba,
y = abc$b$bb, visible=F, marker = list(color = 'red')) %>%
add_trace(type = 'bar', x = abc$b$ba,
y = abc$c$cb, visible=F, marker = list(color = 'yellow')) %>%
layout(
updatemenus = list(
list(
yanchor = 'auto',
buttons = list(
list(method = "restyle",
args = list("visible", list(T, F,F)),
label = 'a'),
list(method = "restyle",
args = list("visible", list(F,T, F)),
label = 'b'),
list(method = "restyle",
args = list("visible", list(F, F,T)),
label = 'c')
))))
p
对于列表中访问的每个数据帧,我需要一种方法来覆盖多个 add_trace 的创建,使用 x = abc$a$aa 和 y = abc$a$ab。
【问题讨论】:
-
使用
lapply和rect会更容易吗? -
@nya i'm n00b in r :D
标签: r ggplot2 graphics plotly r-plotly