2014-11-25 17 views
29
Rdates <- c("2007-01-31","2007-02-28","2007-03-30","2007-04-30","2007-05-31","2007-06-29","2007-07-31","2007-08-31","2007-09-28","2007-10-31") 
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(10,-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") 

gg <- ggplot(MAINDF, aes(x = dates, y = value, fill = variable)) 
gg <- gg + geom_bar(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 Returns") 
gg <- gg + ggtitle("Contribution by Strategy") 
gg <- gg + scale_y_continuous(labels = percent_format()) 
gg <- gg + scale_fill_manual(values=CUSTOMpalette) 
gg 

Hiện tại có thiết lập biểu đồ thanh xếp chồng ggplot2. Mọi thứ hoạt động bình thường ngay bây giờ ngoại trừ tôi đang gặp vấn đề với truyền thuyết. Tôi đã đặt nó ở phía dưới nhưng có 10 mục nên một số bị cắt (không phù hợp). .? Tôi cố gắng guides(fill=guide_legend(nrow=2)) nhưng điều này đặt nhãn theo một thứ tự khác nhau (Tôi muốn nhận được 5 đầu tiên trên thì cuối cùng 5 dưới đây Bất kỳ lời đề nghịTruyền thuyết ở dưới cùng, hai hàng được bao bọc trong ggplot2 trong r

+0

bạn có thể làm ví dụ của bạn tái sản xuất, xin vui lòng? – joran

+0

Vui lòng đọc các thông tin về làm thế nào để sản xuất một [tối thiểu dụ tái sản xuất] (http://stackoverflow.com/questions/5963269/how-to-make- a-great-r-reproducible-example/5963610 # 5963610) Điều này sẽ giúp người khác giúp đỡ bạn dễ dàng hơn nhiều. – Jaap

+0

Sẽ làm, nghĩ rằng nó có thể chỉ là một câu hỏi đơn giản và tôi đã bỏ lỡ một cái gì đó. Ill làm việc trên một ví dụ tái sản xuất. –

Trả lời

58

Bạn đã thực sự gần Hãy thử điều này ở rất kết thúc:.

gg+guides(fill=guide_legend(nrow=2,byrow=TRUE)) 

+2

Ah wow không thể tin rằng tôi didnt thấy. Cảm ơn câu trả lời, đang đập đầu tôi vào bàn. –

Các vấn đề liên quan