R 使用ggplot对两条线之间的阴影区域进行着色
我用ggplot生成以下两行,并希望在两行之间对特定区域进行着色,即y=x²大于y=2x,其中2使用R 使用ggplot对两条线之间的阴影区域进行着色,r,ggplot2,fill,R,Ggplot2,Fill,我用ggplot生成以下两行,并希望在两行之间对特定区域进行着色,即y=x²大于y=2x,其中2使用geom_ribbon如何 ggplot(x, aes(x=x, y=twox)) + geom_line(aes(y = twox)) + geom_line(aes(y = x2)) + geom_ribbon(data=subset(x, 2 <= x & x <= 3), aes(ymin=twox,ymax=x2),
geom_ribbon
如何
ggplot(x, aes(x=x, y=twox)) +
geom_line(aes(y = twox)) +
geom_line(aes(y = x2)) +
geom_ribbon(data=subset(x, 2 <= x & x <= 3),
aes(ymin=twox,ymax=x2), fill="blue", alpha=0.5) +
scale_y_continuous(expand = c(0, 0), limits=c(0,20)) +
scale_x_continuous(expand = c(0, 0), limits=c(0,5)) +
scale_fill_manual(values=c(clear,blue))
ggplot(x,aes(x=x,y=twox))+
几何线(aes(y=twox))+
几何线(aes(y=x2))+
geom_ribbon(数据=子集(x,2我认为geom_ribbon是一条路要走。有两个步骤要走:
数据操作:您应该操作数据,为geom_ribbon中的参数定义ymin和ymax
使用geom_功能区绘制绘图
让我们看看我的例子:
#Data
library(gcookbook)
# Data Manipulation
cb <-subset(climate,Source=="Berkeley")
cb$valence[cb$Anomaly10y >= 0.3] <- "pos"
cb$valence[cb$Anomaly10y < 0.3] <- "neg"
cb$min <- ifelse(cb$Anomaly10y >= 0.3, 0.3, cb$Anomaly10y)
cb$max <- ifelse(cb$Anomaly10y >= 0.3, cb$Anomaly10y, 0.3)
#Drawing plot
ggplot(cb,aes(x=Year,y=Anomaly10y)) +
geom_ribbon(aes(ymin = min, ymax = max, fill = valence), alpha = 0.75) +
scale_fill_manual(values = c("blue", "orange")) +
geom_line(aes(col = valence), size = 1) +
scale_color_manual(values = c("blue", "orange")) +
geom_hline(yintercept=0.3, col = "blue") +
theme_bw()
#数据
图书馆(gcookbook)
#数据操纵
cb=0.3]可能的重复:geom_ribbon是否始终适用于此类任务?说明它不适用。如果数据框中没有交点,则会出现问题。示例:x感谢您的演示!上述代码中存在错误。在调用geom_ribbon
时,参数alpha
应为数字,不是字符,例如alpha=0.5
notalpha=“0.5”
#Data
library(gcookbook)
# Data Manipulation
cb <-subset(climate,Source=="Berkeley")
cb$valence[cb$Anomaly10y >= 0.3] <- "pos"
cb$valence[cb$Anomaly10y < 0.3] <- "neg"
cb$min <- ifelse(cb$Anomaly10y >= 0.3, 0.3, cb$Anomaly10y)
cb$max <- ifelse(cb$Anomaly10y >= 0.3, cb$Anomaly10y, 0.3)
#Drawing plot
ggplot(cb,aes(x=Year,y=Anomaly10y)) +
geom_ribbon(aes(ymin = min, ymax = max, fill = valence), alpha = 0.75) +
scale_fill_manual(values = c("blue", "orange")) +
geom_line(aes(col = valence), size = 1) +
scale_color_manual(values = c("blue", "orange")) +
geom_hline(yintercept=0.3, col = "blue") +
theme_bw()