2016-12-19 27 views
0

私はこのデータセットを持っており、area under each lineを記入したいと思います。しかし、私はエラーが表示されます:ggplot2、線の下の領域を埋めるエラー

Error: stat_bin() must not be used with a y aesthetic.

また、私は透明度のためにalpha値を使用する必要があります。助言がありますか?

library(reshape2) 
library(ggplot2) 

dat <- data.frame(
    a = rnorm(12, mean = 2, sd = 1), 
    b = rnorm(12, mean = 4, sd = 2), 
    month = c("JAN","FEB","MAR",'APR',"MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC")) 

dat$month <- factor(dat$month, 
    levels = c("JAN","FEB","MAR",'APR',"MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"), 
    ordered = TRUE) 

dat <- melt(dat, id="month") 

ggplot(data = dat, aes(x = month, y = value, colour = variable)) + 
    geom_line() + 
    geom_area(stat ="bin") 

答えて

4

I want to fill the area under each line

これは、fill審美的なものを指定する必要があることを意味します。

I get an error saying "Error: stat_bin() must not be used with a y aesthetic."

これは、stat ="bin"コードを削除する必要があることを意味します。

Additionally, I need to use alpha value for transparency.

これは、我々はgeom_area層にalpha = <some value>を配置する必要があることを意味します。

他の2つのこと:(1)x軸に因子があるので、グループ化を指定する必要があります。ggplotは接続するポイントを認識します。この場合、variableをグルーパーとして使用できます。 (2)geom_areaのデフォルトの「位置」は、領域を重複させるのではなく積み重ねることです。透明性について尋ねるので、私はあなたがそれらを重複させたいと思うので、position = 'identity'を指定する必要があります。

​​

enter image description here

+0

おかげで、私は、各変数のアルファ値をカスタマイズする方法を知っていますか? –

+1

@ Geo-spそれは美学としてマップし、 'scale_alpha_discrete'を参照してください。それは領域プロットのための珍しいアプローチです。 – alistaire

2

group美的使用し、カテゴリ変数間の行を取得するには:fill美学を使用し、内部の色を変更するには

ggplot(data = dat, aes(x = month, y = value, colour = variable, group = variable)) + 
    #geom_line(position = 'stack') + # redundant, but this is where lines are drawn 
    geom_area(alpha = 0.5) 

area plot

を。

関連する問題