R графически отображает список данных с обновлением меню
У меня есть список фреймов данных, я хотел бы использовать updatemenu в заговоре, чтобы построить требуемый фрейм данных. Мои кадры данных идентичны.
Temps VA PIB DCF FBCF NetExpBien NetExpServ Pays
2017-10-01 1 1.119052 0.8467021 0.2301707 0.01787727 0.02430174 EU28
2018-01-01 1 1.118442 0.8449038 0.2338990 0.01726791 0.02237178 EU28
2018-04-01 1 1.118810 0.8416101 0.2333340 0.01891264 0.02495364 EU28
2018-07-01 1 1.119707 0.8435438 0.2384327 0.01364623 0.02408448 EU28
Изменяется только переменная "Pays". Названия списка являются переменными "Pays"
Так что я не знаю, как я могу обновить свой сюжет и распечатать желаемую "Платит".
plot_ly(data=dd,
x=as.factor(dd$Temps),
y=dd$VA,
type="bar",
name="Valeur Ajoutée")%>%
add_trace(y = dd$DCF, name = 'Dépense de consommation finale')%>%
add_trace(y = dd$FBCF, name = 'Formation brute de capital fixe')%>%
add_trace(y =dd$NetExpBien, name = 'Net export de biens')%>%
add_trace(y = dd$NetExpServ, name = 'Net export de services')%>%
layout(title = 'Evolution composition du PIB',
barmode = 'group',
updatemenus=list(
list(
y=0.8,
buttons=list(
)
)
))
это для ноутбука R Если кто-то знает, как я могу это сделать
1 ответ
Я работаю над этим, я попытался создать окончательный список напрямую, и зачеркнуть с помощью цикла весь мой список с "visible=FALSE"
и это сработало!!! Поэтому я поделюсь с вами решением.
Просто небольшая проблема, когда я печатаю график и хочу увеличить его, столбцы постепенно исчезают и возвращаются в нормальное состояние, если я возвращаю окну исходный размер, если кто-то может помочь мне с этим, пожалуйста
df_conso_b<-list(data.frame(Temps=c(2017-10-01,2018-01-01,2018-04-01,2018-07-01),
VA=c(1,1,1,1),
PIB=c(1.119052,1.118442,1.118810,1.119707),
DCF=c(0.8467021,0.8449038,0.8416101,0.8435438),
FBCF=c(0.2301707,0.2338990,0.2333340,0.2384327),
NetExpBien=c(0.01787727,0.01726791,0.01891264,0.01364623),
NetExpServ=c(0.02430174,0.02237178,0.02495364,0.02408448),
Pays=c("EU28","EU28","EU28","EU28")),
data.frame(Temps=c(2017-10-01,2018-01-01,2018-04-01,2018-07-01),
VA=c(1,1,1,1),
PIB=c(1,1,1,1),
DCF=c(0.84,0.83,0.82,0.81),
FBCF=c(0.23,0.22,0.21,0.20),
NetExpBien=c(0.017,0.015,0.018,0.013),
NetExpServ=c(0.024,0.022,0.0249,0.028),
Pays=c("EU","EU","EU","EU")),
data.frame(Temps=c(2017-10-01,2018-01-01,2018-04-01,2018-07-01),
VA=c(1,1,1,1),
PIB=c(1,1,1,1),
DCF=c(0.70,0.71,0.72,0.73),
FBCF=c(0.32,0.32,0.31,0.33),
NetExpBien=c(0.14,0.15,0.28,0.32),
NetExpServ=c(0.01,0.06,0.02,0.01),
Pays=c("DE","DE","DE","DE")))
names(df_conso_b)<-c("EU28","EU","DE")
dd<-df_conso_b[[1]]
recap_option<-list()
list_visible<-list()
for (i in 1:length(df_conso_b)){
if (i==1)
list_visible[[i]]<-c(rep(list(TRUE),5),rep(list(FALSE),(5*(length(df_conso_b)-1))))
if (i>=2 & i<length(df_conso_b))
list_visible[[i]]<-c(rep(list(FALSE),5*(i-1)),rep(list(TRUE),5),
rep(list(FALSE),(5*(length(df_conso_b)-i))))
if (i==length(df_conso_b))
list_visible[[i]]<-c(rep(list(FALSE),(5*(length(df_conso_b)-1))),rep(list(TRUE),5))
recap_option[[i]]<-list(method="restyle",
args=list("visible",list_visible[[i]]),
label=names(df_conso_b)[i])
}
p_df_conso_b<-plot_ly(data=dd,
x=as.factor(dd$Temps))%>%
add_trace(y = dd$VA,type="bar", name = 'Valeur Ajoutée')%>%
add_trace(y = dd$DCF,type="bar", name = 'Dépense de consommation finale')%>%
add_trace(y = dd$FBCF,type="bar", name = 'Formation brute de capital fixe')%>%
add_trace(y =dd$NetExpBien,type="bar", name = 'Net export de biens')%>%
add_trace(y = dd$NetExpServ,type="bar", name = 'Net export de services')
for (i in 2:length(df_conso_b)){
dd<-df_conso_b[[i]]
p_df_conso_b<-p_df_conso_b%>%
add_trace(y = dd$VA, name = 'Valeur Ajoutée',visible=FALSE)%>%
add_trace(y = dd$DCF, name = 'Dépense de consommation finale',visible=FALSE)%>%
add_trace(y = dd$FBCF, name = 'Formation brute de capital fixe',visible=FALSE)%>%
add_trace(y =dd$NetExpBien, name = 'Net export de biens',visible=FALSE)%>%
add_trace(y = dd$NetExpServ, name = 'Net export de services',visible=FALSE)
}
p_df_conso_b%>%layout(title = 'Evolution composition du PIB',
barmode = 'group',
updatemenus=list(
list(
y=0.8,
buttons=recap_option
)
))