2016-06-21 8 views
0

グラフのグループ内の個々のチャートを強調表示しようとしています。以下の例では、 'cash_lvl'プロットを強調したいと思います。下のコードを実行すると、dat.plot.list [1]に赤い背景のグラフが表示されます。ただし、サブプロットを使用する場合、両方の背景が白です。レイアウトパラメータをRプロットのサブプロットに渡す

サブプロットに背景が正しく表示されるようにする方法はありますか? dat.plot.list[[1]]

enter image description here

から

library(dplyr) 
library(plotly) 

dat <- structure(
    list(
     date = structure(
     c(
      16101, 16129, 16160, 16190, 
      16221, 16251, 16282, 16313, 16343, 16374, 16404, 16435, 16101, 
      16129, 16160, 16190, 16221, 16251, 16282, 16313, 16343, 16374, 
      16404, 16435 
     ), class = "Date" 
    ), measure = c(
     "cash_lvl", "cash_lvl", 
     "cash_lvl", "cash_lvl", "cash_lvl", "cash_lvl", "cash_lvl", "cash_lvl", 
     "cash_lvl", "cash_lvl", "cash_lvl", "cash_lvl", "tot_eq_lvl", 
     "tot_eq_lvl", "tot_eq_lvl", "tot_eq_lvl", "tot_eq_lvl", "tot_eq_lvl", 
     "tot_eq_lvl", "tot_eq_lvl", "tot_eq_lvl", "tot_eq_lvl", "tot_eq_lvl", 
     "tot_eq_lvl" 
    ), value = c(
     42845610.9859923, 42845610.9859923, 
     42845610.9859923, 43947947.8113193, 43947947.8113193, 43947947.8113193, 
     54130448.068727, 54130448.068727, 54130448.068727, 58733268.7486493, 
     58733268.7486493, 58733268.7486493, 109715000, 109715000, 109715000, 
     84928000, 84928000, 84928000, 94569000, 94569000, 94569000, 96630000, 
     96630000, 96630000 
    ) 
    ), row.names = c(NA,-24L), class = c("tbl_df", 
             "tbl", "data.frame"), .Names = c("date", "measure", "value") 
) 

dat.list <- split(dat, f = dat$measure) 

highlight <- c('cash_lvl') 

dat.plot.list <- lapply(seq_along(dat.list), function(d, n, f, i) { 

    if(n[[i]] %in% f) { 
    bckgrnd <- '#FFE3E3' 
    } else { 
    bckgrnd <- '#FFFFFF' 
    } 

    plot_ly(d[[i]], x = date, y = value) %>% 
    layout(plot_bgcolor = bckgrnd) 

}, d = dat.list, n = names(dat.list), f = highlight) 

出力しますが、この部分を変更した場合しかし、サブプロットからの出力のみが白い背景

do.call(subplot, append(dat.plot.list, list(nrows = 2, margin = c(.025, .025, .1, .1)))) 

enter image description here

答えて

1

を示しこれに:layout(plot_bgcolor = '#ffe3e3')あなたはサブプロットで適切な色を取得する必要があります。 if(n[[i]] %in% dat$measure)

ので、出力は次のとおりです:

enter image description here

私はこのような着色条件を変更する場合にも動作します

関連する問題