在R图中使用图像作为区域填充

Jon*_*koa 6 r image ggplot2

如何制作与此类似的图表(美元图像图表)?或者我可以用什么包装?我有一个使用geom_area的(gg)图.

美元图形图像

美元图形图像

eip*_*i10 9

这纯粹是为了新奇的目的,对吧?

在下面的代码中,我们用蓝色曲线掩盖了美元钞票上方的部分geom_ribbon.

library(jpeg)
library(grid)
library(ggplot2)
library(scales)
theme_set(theme_classic())

# Load image of dollar bill and convert to raster grob
download.file("https://2marks.files.wordpress.com/2013/07/george-washington-on-one-dollar-bill.jpg", 
              "dollar_bill.jpg")
db = readJPEG("dollar_bill.jpg")
db = rasterGrob(db, interpolate=TRUE) 

# Fake data
set.seed(3)
dat = data.frame(x=1913:2009)
dat$y2 = seq(5,950, length=nrow(dat)) + rnorm(nrow(dat), 0, 5)
dat$y1 = seq(100,5,length=nrow(dat)) + c(0, -0.5, rnorm(nrow(dat) - 2, 0, 2))

ggplot(dat, aes(x, y1)) +
  annotation_custom(db, xmin=1913, xmax=2009, ymin=0, ymax=100) +
  geom_ribbon(aes(ymin=y1, ymax=100), fill="white") +
  geom_line(size=1, colour="blue") +
  geom_line(aes(y=y2/10), size=1, colour="red") +
  coord_fixed(ratio=1/2.5) +
  scale_y_continuous(limits=c(0,100), expand=c(0,0),
                     sec.axis=sec_axis(~.*10, name="Currency in Circulation\n(billions)", labels=dollar)) +
  scale_x_continuous(limits=c(1913,2009), expand=c(0,0)) +
  labs(x="", y="Purchasing Power\n(1913=100)") +
  theme(axis.text.y.right=element_text(colour="red"),
        axis.title.y.right=element_text(colour="red"),
        axis.text.y=element_text(colour="blue"),
        axis.title.y=element_text(colour="blue"),
        axis.title.x=element_blank())
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述