2016-11-04 18 views
0

Rでプロットした長方形の対話型プロットを作成しようとしていますgeom_rect半透明の領域ですが、色付きの輪郭を維持します

私は主なアイデアがあります。しかし、私が悩んでいるのは、各矩形に(データの「塗りつぶし」列に描かれているように)色の付いた輪郭を持つことですが、完全に透明な領域です。以下は

が働いているもののMWEです:

library(ggplot2) 
library(dplyr) 
library(plotly) 
set.seed(1) 
data <- data.frame(Name = paste0("Name",seq(1:10)), xmin = runif(10, 0, 1), xmax = runif(10, 1, 2), ymin = runif(10, 0, 1), ymax = runif(10, 1, 2), fill = sample(c("black","purple"),10, replace=TRUE)) 

p <- ggplot(data, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, fill = NULL, colour = fill, text = Name)) + geom_rect(size = 0.3, alpha = 0.5) + scale_colour_identity() + theme_bw() 
ggplotly(p, tooltip = "text") %>% layout(dragmode = "select") 

私は各長方形の上に置いて、私に示されたデータの名前の変数を持つことができます。さらに、データの塗りつぶし変数は、矩形の色を決定します。しかし、私は矩形を透明にすることができません。

Iが試み:= NAを埋めるために= NULLを満たす変更)

1に、これはエラーになる:アルファ= 0.01、α= 0.5の変更

Error in seq.default(h[1], h[2], length.out = n) : 
    'to' cannot be NA, NaN or infinite 

2)、これはなります各矩形の輪郭もむしろ透明である。

このタイプのプロットは、矩形の領域を完全に透明にして作成することはできますか?私は実際に長方形の輪郭を着色し、異なるアルファ値に対応できるようにしたいと考えています。

私に助言があれば、それを聞いてとてもうれしいです!

+1

は多分 'geom_rectのように出力が見えます(...、塗りつぶし= NA)以下のようにコードを変更することによって行うことができます' – cuttlefish44

+1

必ずやってください@ cuttlefish44のコメントに示されているように、 'geom_rect'の' aes'の 'fill = NA' * outside *です。 – aosmith

答えて

0

実際には簡単です。 geom_rect関数の場合は、fill=alpha("grey",0)を使用して塗りつぶしパラメータに透過色を使用するだけで、目的の結果が得られます。

あなたは

p <- ggplot(data, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, colour = "purple", text = Name)) + geom_rect(size = 0.3, alpha = 0.5,fill=alpha("grey",0)) + scale_colour_identity() + theme_bw() 
ggplotly(p, tooltip = "text") %>% layout(dragmode = "select") 

Output Image

関連する問題