2016-07-04 6 views
0

Rのプロットパッケージを使用して、私はdesityプロットをしたいと思います。実際には、グラフにもう1つの密度線を追加する必要があります。私は地理的地域別にある公的会社の所得情報を持つデータを持っています。最初の瞬間には、このRでは、濃度プロットでトレースを追加します

head(data) 
id income region 
    1  4556  1 
    2  6545  1 
    3 65465  2 
    4 54555  1 
    5 71442  2 
    6  5645  6 

ような何か、私はこれ以上を望む、以下の密度プロット

reg56<- data[data$region %in% c(5,6) , ] 
dens <- with(reg56, tapply(income, INDEX = region, density)) 
df <- data.frame(
x = unlist(lapply(dens, "[[", "x")), 
y = unlist(lapply(dens, "[[", "y")), 
cut = rep(names(dens), each = length(dens[[1]]$x)) 
) 

# plot the density 
p<- plot_ly(df, x = x, y = y, color = cut) 

と5と6地域の所得を分析した。しかし。総所得、つまりすべての地域の所得を加算したいと思います。私は何かこれを試した

data$aux<- 1 
dens2 <- with(data, tapply(income, INDEX = 1, density)) 
df2 <- data.frame(
x = unlist(lapply(dens2, "[[", "x")), 
y = unlist(lapply(dens2, "[[", "y")), 
cut = rep(names(dens2), each = length(dens2[[1]]$x))) 

p<- plot_ly(df, x = x, y = y, color = cut) 
p<- add_trace(p, df2, x = x, y = y, color = cut) 
p 
Error in FUN(X[[i]], ...) : 
'options' must be a fully named list, or have no names (NULL) 

このためのいくつかの解決策は?

答えて

1

add_traceに渡すパラメータの名前を指定していないため、デフォルトのパラメータの順序に対応するものとして解釈されます。 add_traceの使用量は、(= FALSEを評価し、P = last_plot()、...、グループ、色、色、シンボル、記号、 サイズ、データ= NULL)

add_traceある

したがって、2番目のパラメータとしてdata.frame df2を提供する関数呼び出しでは、これは...パラメータに対応するものとみなされます。このパラメータは名前付きリストでなければなりません。このパラメーターが何であるかをadd_traceが理解できるように、data = df2を指定する必要があります。

(あなたの例のようにdfdf2を計算した後)、今

library(plotly) 
set.seed(999) 
data <- data.frame(id=1:500, income = round(rnorm(500,50000,15000)), region=sample(6,500,replace=T)) 

に証明するためにいくつかのダミーデータを生成することができます:

p <- plot_ly(df, x = x, y = y, color = cut) %>% 
    add_trace(data=df2, x = x, y = y, color = cut) 
p 

enter image description here

関連する問題