R:ggplot2扩展了超出轴的绘图背景

Sil*_*ood 1 plot r area ggplot2

我使用ggplot2生成的图表作为knitr文档的图像输入.我希望将背景颜色扩展到轴/绘图区域和图例之外,如右侧的LaTeX图表所示(链接)

R vs LaTeX剧情:

情节

R代码:

来自Timely Porfolio Horizo​​n Chart的数据示例

require(ggplot2)
require(reshape2)
require(quantmod)
require(PerformanceAnalytics)
require(grid)
require(scales)


data(edhec)
origin = 0

#get 12 month rolling return of edhec indexes
roc <- as.xts(apply(cumprod(edhec+1),MARGIN=2,ROC,n=12,type="discrete"),order.by=index(edhec))

roc<-roc[complete.cases(roc),]
roc.df <- as.data.frame(cbind(index(roc),coredata(roc)))[c(1:20),c(1,8,9,10)]
colnames(roc.df)<-gsub(" |\\/","",colnames(roc.df))


roc.melt <- melt(roc.df,id.vars=1)
roc.melt[,1] <- as.Date(roc.melt[,1])  
roc.df[,1] <- as.Date(roc.df[,1])
names(roc.melt)[1]<-"date"
names(roc.df)[1]<-"date"


Rbgcol<-"#E7EAEC"


ggplot(roc.melt,aes(x=date,y=value,color=variable))+geom_line() + scale_y_continuous(limits = c(-0.1,0.3)) + labs(title="R Plot")+ 

theme(
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.position="bottom",
legend.title=element_blank(),
legend.background= element_rect(fill=Rbgcol, colour=NA),
legend.key = element_rect(colour = NA, col = alpha(Rbgcol,0.1), size = .3, fill = alpha(Rbgcol,0.1)),
panel.grid.minor.x = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.y = element_blank(),
axis.ticks = element_blank(),
panel.margin = unit(0,"null"),
plot.margin = rep(unit(0,"null"),4)
)
Run Code Online (Sandbox Code Playgroud)

任何指针都会有很大帮助,谢谢.

Did*_*rts 5

您可以使用plot.background=内部参数theme()为绘图背景设置颜色.

 +theme(plot.background=element_rect(fill="grey90"))
Run Code Online (Sandbox Code Playgroud)

  • 也+1!当尝试统一应用自定义样式时,“legend.background”、“legend.key”、“panel.background”和“strip.background”都相当重要。查看“ggthemes”包中“theme_economist”的源代码,了解确保完整背景颜色覆盖的示例。 (2认同)