私は2つの他の列の合計である列を持っています。私はcolor_bar
フォーマッタを2つの色、個々の番号を表す各幅で取得しようとしています。私は別のcolor_bar
を追加してカラーバーコードを補強しようとしました。アイデアは大きなバーが合計の列になることでした。その後、私は個々の数字の一つになるために別のバーが必要でした。私は2色のバーを持っています。2色のcolor_bar(Rの形式)
問題のカップル:主に、~
の前に変数を削除して、幅ブロックに列を配置すると、Rは参照を理解できないようです。 2つ目は、2つのカラーブロックを持つことができるかどうかを確認しようとするときに、2番目のブロックの高さを調整することによって、2番目のブロックだけが表示されます。私は下のコードを入れました。
ヒント、アイデア、または解決策があれば、教えてください。私は、2つの個々の列がどのように合計列に並んでいるかを表示するための代替案を用意しています。私が入力しているように、おそらくパイのスパークラインですか?ここで
は、コードは次のとおりです。
#Make a formattable with a dual color bar
#Packages
library(dplyr)
library(formattable)
#Function
#Ideally, I'd like it to be a function, but can't visualize how to do it.
dualbar <- function(bar1 = "lightgray", bar2 = "lightblue",
fun = "comma", digits = 0) {
fun <- match.fun(fun)
formatter("span", x ~ fun(x, digits = digits),
style = y ~ style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor(bar1),
width = percent(proportion(as.numeric(y), na.rm = TRUE))),
style = z ~ style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor(bar2),
width = percent(proportion(as.numeric(z), na.rm = TRUE)),
height = "10px")
)
}
#Generate Data
set.seed(1234)
df <- data.frame(month = month.name[1:12],
valx = runif(12, 0, 5),
valy = runif(12, 2, 7))
df$total <- df$valx + df$valy
tab <- df %>%
formattable(list(area(row = 1:12, col = 2) ~
formatter("span", x ~ comma(x, digits = 0),
style = y ~ style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor("lightgray"),
width = percent(proportion(as.numeric(y), na.rm = TRUE))),
z ~ style(
display = "inline-block",
direction = "rtl",
"border-radius" = "4px",
"padding-right" = "2px",
"background-color" = csscolor("lightblue"),
width = percent(proportion(as.numeric(z), na.rm = TRUE)))
))) %>%
select(-valx, -valy) %>%
formattable::as.htmlwidget()
tab