在R中用polygon在线下阴影区域

问题描述

我正在尝试使用polygon()填充线下的区域,但是该区域填充在上方。

我一直在寻找过去类似的问题,但是它们要么使用诸如预测或过分规范化的解决方案,要么似乎不适合我的情况。

这是我的代码

# Playfair's chart
library("HistData")
data(Arbuthnot)
data("Wheat")
data("Wheat.monarchs")

with(Wheat,{
  plot(x = Year,y = Wheat,type = "s",ylim = c(0,105),ylab = "Price of the Quarter of Wheat",panel.first = grid(col=gray(.9),lty = 1))
  lines(Year,Wages,col = "red",lwd = 2)
})

polygon(c(min(Wheat$Year),Wheat$Year,max(Wheat$Year)),c(0,Wheat$Wages,0),col = "gray")

这是result

可能是一个菜鸟问题,但仍然不知道该怎么做。 我知道我可以尝试使用ggplot2,但我想先尝试使用标准图形。

解决方法

好像您差不多明白了。 工资(最近3年)中缺少值。如果您在绘制多边形之前将其删除,则您的代码有效。

with(Wheat[!is.na(Wheat$Wages),],polygon(c(min(Year),Year,max(Year)),c(0,Wages,0),col = "gray"))

enter image description here