R 从ggplot2中的图例中删除空白的方法

R 从ggplot2中的图例中删除空白的方法,r,ggplot2,legend,legend-properties,R,Ggplot2,Legend,Legend Properties,我有一个堆叠的条形图,我很高兴,但我正在努力将底部的图例移到更靠近图表的位置(那里有很多空白) 这是我的可复制代码: library(ggplot2) library(scales) library(reshape2) Rdates <- seq(as.Date("2004-02-01"), length=120, by="1 month") - 1 Rdates <- as.Date(Rdates) Cnames <- c("Column 1 Really Long","Co

我有一个堆叠的条形图,我很高兴,但我正在努力将底部的图例移到更靠近图表的位置(那里有很多空白)

这是我的可复制代码:

library(ggplot2)
library(scales)
library(reshape2)
Rdates <- seq(as.Date("2004-02-01"), length=120, by="1 month") - 1
Rdates <- as.Date(Rdates)
Cnames <- c("Column 1 Really Long","Column 2 Really Long","Column 3 Really Long","Column 4 Really Long","Column 5 Really Long","Column 6 Really Long","Column 7 Really Long","Column 8 Really Long","Column 9 Really Long","Column 10 Really Long")
MAINDF <- data.frame(replicate(10,runif(120,-0.03,0.03)))
rownames(MAINDF) <- Rdates
colnames(MAINDF) <- Cnames
CUSTOMpalette <- c("#1a2ffa", "#0d177d", "#1a9ffa", "#fa751a", "#4b8e12", "#6fd21b", "#fae51a", "#c3b104", "#f5df05", "#dcc805")
MAINDF[,"dates"] <- Rdates

MAINDF <- melt(MAINDF,id.vars="dates")

postive <- subset(MAINDF,value >= 0)
negative <- subset(MAINDF,value < 0)

gg <- ggplot()
gg <- gg + geom_bar(data = postive , aes(x = dates, y = value, fill = variable),stat="identity")
gg <- gg + geom_bar(data = negative , aes(x = dates, y = value, fill = variable),stat="identity")
gg <- gg + scale_x_date(breaks = "3 months", labels=date_format("%b%y"),limits=c(min(as.Date(MAINDF$dates)),max(as.Date(MAINDF$dates))))
gg <- gg + theme(
  axis.text.x= element_text(color="black",angle=45, size=10, vjust=0.5),
  axis.text.y= element_text(color="black", size=12, vjust=0.5),
  axis.title.y = element_text(color="black",size=12, vjust=0.5),
  plot.title = element_text(color="black",face="bold",size=14, hjust=0.5,vjust=1),
  panel.background = element_blank(),
  panel.border = element_rect(linetype = "solid", colour = "black",fill=NA),
  legend.position="bottom",
  legend.title = element_blank(),
  legend.key = element_rect(fill="white"), legend.background = element_rect(fill=NA)
)
gg <- gg + xlab("") + ylab("Monthly Net Returns") 
gg <- gg + ggtitle("Contribution by Strategy")
gg <- gg + scale_y_continuous(labels = percent_format())
gg <- gg + scale_fill_manual(values=CUSTOMpalette)
gg <- gg + guides(fill=guide_legend(nrow=2,byrow=TRUE))
gg
库(ggplot2)
图书馆(比例尺)
图书馆(E2)
Rdates试着玩:


gg您可以将所有这些ggplot元素串在一起,以供参考
theme(axis.title.x=element\u blank())
对您有所帮助,但不会给您太多的控制权。这使得空白X标题没有占用任何空间。你是对的,我的坏,仍然试图抓住它的诀窍。谢谢你的帮助,我一定会继续加入图书馆。我想这会剪辑传奇吗?另一个解决办法是使用Yea,因为我刚刚注意到了这一点。我一直在玩guide_legend,但没有运气移动整个legend。
library(ggplot2)
library(reshape2)
library(scales)