我相信这个问题很容易解决。
我正在尝试填充我从" 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)
我的结果是:
我想为&#34; mountain&#34;的另一个区域着色。
答案 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')
哪个产生
您可以使用fill
和theme
来设置不同的选项(不太清楚您的所需输出是什么)。
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()
哪个产生
答案 1 :(得分:1)
您可以使用geom_ribbon
。 geom_area
是geom_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。