问题描述
我第一次在R中使用ggpattern包,但无法在我的绘图中使用该图像。我的代码的简化版本在这里:
x = seq(-1.5,3.5,0.1)
y = c( rep(1.0,22),rep(0.2,12),rep(0.7,7),rep(1,10))
ref = data.frame(x = x,y = y)
library(dplyr)
library(ggplot2)
library(ggpattern)
coral = system.file("Coral","coral.jpg",package="ggpattern")
p = ggplot(ref,aes(x = x,y = y))+
scale_y_reverse(lim = c(1,0))+
theme_classic()+
geom_ribbon_pattern(aes(x = x,ymin = 1,ymax = y),color = "darkblue",fill = NA,size = 1.5,pattern = 'image',pattern_type = 'squish',pattern_filename = coral) +
geom_ribbon(aes(x = x,ymin = 0,fill = "lightblue")
当我运行这段代码时,我得到的只是: 缺少图像填充的情节
但是使用此代码,我认为曲线下的白色区域应填充珊瑚图像。有人知道我在做什么错吗?我已经搜索了StackOverflow和GitHub,但是找不到答案。
解决方法
我认为这里的问题是,ggpattern的img文件夹中没有“ coral.jpg”文件。
当我使用文件夹中存在的图像之一编辑代码时,它工作正常。
x = seq(-1.5,3.5,0.1)
y = c( rep(1.0,22),rep(0.2,12),rep(0.7,7),rep(1,10))
ref = data.frame(x = x,y = y)
library(dplyr)
library(ggplot2)
library(ggpattern)
coral = system.file("img","magpie.jpg",package="ggpattern")
p = ggplot(ref,aes(x = x,y = y))+
scale_y_reverse(lim = c(1,0))+
theme_classic()+
geom_ribbon_pattern(aes(x = x,ymin = 1,ymax = y),color = "darkblue",fill = NA,size = 1.5,pattern = 'image',pattern_type = 'squish',pattern_filename = coral) +
geom_ribbon(aes(x = x,ymin = 0,fill = "lightblue")
p