Изменить ось X после выпадающего меню в plot_ly R - PullRequest
0 голосов
/ 01 ноября 2019

Я хотел бы иметь интерактивные графики в R, используя plot_ly. Мне нужно построить график y по странам (ось x) и календарному периоду (одно выпадающее меню). Кроме того, я хочу, чтобы страны менялись при смене континентов (одно выпадающее меню). Вот следующий мой код. Это работает, но список стран не был правильно выбран во время фильтра: я видел больше стран, чем ожидалось, хотя нет. баров правильно.

Мои данные имеют 4 столбца: континент, страна, период, у

continent <- c(c1, c2,c3,c4,c5,c6)
period <- c(p1, p2, p3)

pp <- plot_ly(mydata, x = ~country, y = ~y, type='bar', transforms = list(list( type = 'filter',target = ~ continent,operation = '=',value = continent [1]),list( type = 'filter',target = ~period,operation = '=',value = period[1]))) 

continent_filter <- list(x=0.2,y=1.1, type = 'dropdown',active = -1,buttons = apply(as.data.frame(continent), 1, function(y) list(method = 'restyle',args = list('transforms[0].value',y, "x", mydata$country[mydata$continent== y]),label = y)))

period_filter <- list(x=0.6,y=1.1,type = 'dropdown',active = -1,buttons = apply(as.data.frame(period), 1, function(y) list(method = 'restyle',args = list('transforms[1].value',y ),label = y)))

pp <- pp %>% layout(showlegend = FALSE,updatemenus = list(continent_filter, period_filter))

Спасибо

...