填充曲线下的区域 - R plot

时间:2018-05-23 01:30:57

标签: r ggplot2 polygon

我试图用颜色填充情节曲线下的区域。这是我的数据:

WOL EB1 EB2 EB3
-4  -9.61818    5.38182 15.38182
-3  -11.75152   3.24848 13.24848
-2  -13.01212   1.98788 11.98788
-1  -16.16364   -1.16364    8.83636
1   -33.8606    -18.8606    -8.8606
2   -27.897 -12.897 -2.897
3   -25.4242    -10.4242    -0.4242
4   -23.09697   -8.09697    1.90303
5   -21.01212   -6.01212    3.98788
6   -18.73333   -3.73333    6.26667
7   -16.45455   -1.45455    8.54545
8   -16.06667   -1.06667    8.93333
9   -15.193939  -0.193939   9.806061
10  -14.175758  0.824242    10.824242
11  -12.13939   2.86061 12.86061
12  -11.84848   3.15152 13.15152

我的代码是:

cord.x <- c(eb$WOL)
cord.y <- c(eb$EB1)
polygon(cord.x,cord.y,col='red',border = NA)

但这填补了上面的区域,我找不到办法去做下面的区域。 我也尝试了情节包但没有成功。 我希望有三条曲线(WOL~EB1; WOL~EB2;和WOL~EB3)和三个不同颜色的相应区域。

你能帮忙吗? 非常感谢, PHUONG

3 个答案:

答案 0 :(得分:2)

您可listSum使用gather,然后使用dplyr

ggplot

stacked

更新(根据评论)

默认情况下,require(tidyverse) df %>% gather(iv, value, -WOL) %>% ggplot(aes(x=WOL, y=value)) + geom_area(aes(fill=iv)) geom_area(),这可能会使y轴上的值变形。您可以使用position="stacked"代替position="dodge"代替geom_polygon(),以获得不同的效果:

<强> geom_area(位置= “躲闪”)

df %>%
  gather(iv, value, -WOL) %>%
  ggplot(aes(x=WOL, y=value, fill=iv)) +
  geom_area(position=position_dodge(0), alpha=.7)

dodge geom_polygon()

df %>%
  gather(iv, value, -WOL) %>%
  ggplot(aes(x=WOL, y=value, fill=iv)) +
  geom_polygon()

polygon

答案 1 :(得分:0)

我认为您可以在R中使用 1 2 3 4 5 6 7 8 mon 4CCI02 FR 5CS01 so on 5 42 29 Tue MC03 48 Wed so on 包来实现您的要求。以下是产生下图的代码(我相信你正在寻找的是:阴影下面积为阴影的曲线):

ggplot2

enter image description here 为EB2&amp;做同样的事情EB3。

答案 2 :(得分:0)

如果你想要交互式情节(你提到plotly),这是一个使用highcharter包的解决方案

library(tidyverse)
library(highcharter)

eb <- read.table(text = "WOL EB1 EB2 EB3
                  -4  -9.61818    5.38182 15.38182
                 -3  -11.75152   3.24848 13.24848
                 -2  -13.01212   1.98788 11.98788
                 -1  -16.16364   -1.16364    8.83636
                 1   -33.8606    -18.8606    -8.8606
                 2   -27.897 -12.897 -2.897
                 3   -25.4242    -10.4242    -0.4242
                 4   -23.09697   -8.09697    1.90303
                 5   -21.01212   -6.01212    3.98788
                 6   -18.73333   -3.73333    6.26667
                 7   -16.45455   -1.45455    8.54545
                 8   -16.06667   -1.06667    8.93333
                 9   -15.193939  -0.193939   9.806061
                 10  -14.175758  0.824242    10.824242
                 11  -12.13939   2.86061 12.86061
                 12  -11.84848   3.15152 13.15152",
                 header = TRUE)

eb %>% 
  gather(iv, value, -WOL) -> eb_long
str(eb_long)
#> 'data.frame':    48 obs. of  3 variables:
#>  $ WOL  : int  -4 -3 -2 -1 1 2 3 4 5 6 ...
#>  $ iv   : chr  "EB1" "EB1" "EB1" "EB1" ...
#>  $ value: num  -9.62 -11.75 -13.01 -16.16 -33.86 ...

hchart(eb_long, "polygon", hcaes(x = WOL, y = value, 
                                 group = iv,
                                 color = iv, 
                                 fill  = iv))

enter image description here

reprex package(v0.2.0)创建于2018-05-22。