13

DT を使用datatableすると、列のセルの中央に表示され、セルの値が正か負かに応じて左または右に伸びるバーを作成しようとしています。

関数styleColorBarを使用して引数backgroundPosition'left'orに変更しようとしました'center'が、各試行でバーはセルの右側に表示され、常に左側に移動します。

R コードの例は見つかりませんが、Excel で実行できる例を添付しました。色は必須ではありませんが、含まれていればおまけになります。

ここに画像の説明を入力

4

1 に答える 1

29

styleColorBarCSS グラデーション (元の と同じstyleColorBar) を使用して、必要な種類のバーを作成するカスタム関数を作成できます。

以下に例を示します (長い行で申し訳ありません。新しい行を追加すると CSS が壊れます)。

color_from_middle <- function (data, color1,color2) 
{
  max_val=max(abs(data))
  JS(sprintf("isNaN(parseFloat(value)) || value < 0 ? 'linear-gradient(90deg, transparent, transparent ' + (50 + value/%s * 50) + '%%, %s ' + (50 + value/%s * 50) + '%%,%s  50%%,transparent 50%%)': 'linear-gradient(90deg, transparent, transparent 50%%, %s 50%%, %s ' + (50 + value/%s * 50) + '%%, transparent ' + (50 + value/%s * 50) + '%%)'",
             max_val,color1,max_val,color1,color2,color2,max_val,max_val))
} 

いくつかのテストデータを使用する:

data <- data.frame(a=c(rep("a",9)),value=c(-4,-3,-2,-1,0,1,2,3,4))

datatable(data) %>%
  formatStyle('value',
              background=color_from_middle(data$value,'red','blue'))

ここに画像の説明を入力

于 2015-11-04T14:29:03.980 に答える