Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用ggplot对两条线之间的阴影区域进行着色_R_Ggplot2_Fill - Fatal编程技术网

R 使用ggplot对两条线之间的阴影区域进行着色

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),

我用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), 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
    not
    alpha=“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()