2017-09-05 11 views
0

私はR Shinyアプリケーションを作成しており、ユーザーの入力に基づいてデータを分析し、Jaccardインデックスを示すバーを出力したいと考えています。反応性矩形プロットを作成する

enter image description here

ジャカード指数(0.35、このケースでは)それぞれの入力後に変更されますのでご注意ください、私は何かが欲しい:明らかにスムーズな勾配がが、これは、私はそれが見えるようにしたいものです反応性である。私はちょうど始めるべきか分からないか、このようなプロットをRでも可能である。

ありがとう。

編集:私はオンライングラデーションジェネレータを使ってこのプロットを作成しました:どのようにして、この特定の画像のバーの対応するJaccardインデックスと対応する位置に垂直線を重ねることができますか?

enter image description here

編集:私は実際にプロットする前に、私のテキストの後の空白を削除します。何か案は? plotrixパッケージにenter image description here

答えて

1

library(plotrix) 
# get an empty box 
plot(0:10, type="n", axes=FALSE, xlab=NA, ylab=NA) 
# rectangle filled with a gradient 
gradient.rect(0, 0, 10, 5, col=smoothColors("red",38,"blue"), border=NA) 
# vertical bar 
segments(3.5, 0, 3.5, 5, lwd=2) 
text(3.5, 0, "0.35", pos=1, xpd=TRUE) 

enter image description here

+0

を使用して、矢印を使用して、適切な位置を指して試みることができますか?どのようにして、「反作用」機能で、このプロットという別のオブジェクトを単に「返す」ことができますか?あなたのコードでは、各行が互いに構築されているので、私は何をすべきか分かりません。 – sweetmusicality

+1

@ rendertlusの@sweetmusicalityは、「1つのオブジェクト」を返す必要はありません –

+0

1つのオブジェクトを返しますか? – sweetmusicality

1

ベースR、this solutionの不完全修正版で何かのために、働くかもしれません。次のように

color.bar <- function(lut, min, max=-min, nticks=11, ticks=seq(min, max, len=nticks), title='') { 
    scale = (length(lut)-1)/(max-min) 
    dev.new(width=1.75, height=5) 
    plot(c(min,max), c(0,10), type='n', bty='n', xaxt='n', xlab='', yaxt='n', ylab='', main=title) 
    for (i in 1:(length(lut)-3)) { 
    x = (i-1)/scale + min 
    rect(x, 0 ,1, 30/scale, col=lut[i], border=NA) 
    } 
} 

その後、グラフを作る -

color.bar(colorRampPalette(c("light green", "yellow", "orange", "red"))(100), 0, 1) 

この時点では、おそらくあなたが望む結果を得るためにabline(v = 0.35)を追加することができますか? あなたも、私はRシャイニーでこれを使うのですか

arrows(0.35, -1, 0.35, 0, length = 0.07, angle = 25) 

enter image description here

+0

ここでは "0.35"が "0.35"と指定されていますか?現在、 "0.35"はほぼ "0.66"です。矢印は機能し、どこを変更するのか分からない – sweetmusicality

+1

これはもっとうまくいくはずです – Ameya

+0

ありがとう:)最後の質問 - 下に値を追加するにはどうすればいいですか? – sweetmusicality

関連する問題