反转彩色区域geom_area

时间:2018-04-27 15:16:04

标签: r ggplot2

我相信这个问题很容易解决。

我正在尝试填充我从" mydata"使用ggplot2

这里的例子是:

a = seq(10, 100, 5)
b = -(runif(19, 0, 50))
mydata <- data.frame(a, b)

ggplot(data = mydata, aes(x = a, y = b)) +
  geom_area()

geom_bar填充在线上方,考虑从0开始的区域和值(负)。我想填补其他区域,我想我应该划定我想要颜色的区域,但我不知道如何。

上面的脚本只是一个简单的例子。 我的真实剧本是

ggplot(data = ctd, aes(x = Longitude, y = Depth)) +
  geom_raster(aes(fill = NO3_uM)) +
  scale_fill_gradientn(colours = rev(my_colours)) +
  geom_contour(aes(z = NO3_uM), binwidth = 2, colour = "black", alpha = 0.2) +
  #geom_contour(aes(z = NO3_uM), breaks = 20, colour = "black") +

  geom_point(data = ctd, aes(x = Longitude, y = Depth),
             colour = 'black', size = 3, alpha = 1, shape = 15) +
  geom_area(data = trsect, aes(x = Longitude, y = Depth), fill = "black")+
  ylim(-320,0)

我的结果是:

enter image description here enter image description here

我想为&#34; mountain&#34;的另一个区域着色。

2 个答案:

答案 0 :(得分:1)

您可以尝试制作矢量来定义新区域。

qq = rep(-60, length(b))
ggplot(data=mydata, aes(x = a, y = b))+
 geom_area(data=data.frame(qq), aes(y=qq), fill='red', alpha=0.5) +
 geom_area(aes(y=b), col='black') 

哪个产生

enter image description here

您可以使用filltheme来设置不同的选项(不太清楚您的所需输出是什么)。

ggplot(data=mydata, aes(x = a, y = b))+
   geom_area(data=data.frame(qq), aes(y=qq),fill='red', alpha=0.5) +
   geom_area(aes(y=b), fill='white') + theme_void()

哪个产生

enter image description here

答案 1 :(得分:1)

您可以使用geom_ribbongeom_areageom_ribbon的一个特例,其中ymin设置为0.而是将ymin设置为y值的最小值,即ymin = min(b)。或者如果你想要一些额外的空间,你可以ymin = min(b) - 2或类似的东西。

library(tidyverse)

a = seq(10, 100, 5)
b = -(runif(19, 0, 50))
mydata <- data.frame(a, b)

ggplot(mydata) +
    geom_ribbon(aes(x = a, ymin = min(b), ymax = b))

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