2014-10-30 20 views
5

Tôi muốn vẽ một thanh chắn được né tránh trong hai năm khác nhau và đặt số doanh thu lên trên thanh tương ứng. Sau khi thử một số gợi ý tôi tìm thấy ở đây, tôi vẫn không thể có được những gì tôi muốn (tất cả các con số được hiển thị ở giữa các thanh giữa/cột thay vì lan rộng như nhau). Bất kỳ đề nghị sẽ được đánh giá cao. Cảm ơn!Thêm văn bản trên đầu trang của một thanh khía cạnh có khía cạnh bằng cách sử dụng ggplot2

nỗ lực mới nhất của tôi

# Disable scientific notation 
options("scipen" = 100, "digits" = 1) 

censusData <- structure(list(Year = c(2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 
             2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 
             2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 2007L 
            ), County = c("A", "A", "B", "B", "C", "C", "Sum", "Sum", "A", 
             "A", "B", "B", "C", "C", "Sum", "Sum", "A", "A", "B", "B", "C", 
             "C", "Sum", "Sum"), variable = structure(c(1L, 1L, 1L, 1L, 1L, 
             1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
             3L, 3L, 3L), .Label = c("Total_Revenue", "Crop_Revenue", "Livestock_Revenue" 
            ), class = "factor"), value = c(1645.51, 1203.806, 68.911, 60.949, 
             923.163, 525.918, 2637.584, 1790.673, 1069.497, 787.459, 47.157, 
             38.735, 825.050228, 470.024, 1941.704228, 1296.218, 576.013, 
             416.347, 21.754, 22.214, 98.112772, 55.894, 695.879772, 494.455 
            )), row.names = c(NA, -24L), .Names = c("Year", "County", "variable", 
             "value"), class = "data.frame") 

# Dodged barplot 
qbarplot_yr_1 <- ggplot(censusData, aes(County, value)) + facet_grid(. ~ Year) + 
    geom_bar(aes(fill = variable), position = "dodge", stat="identity") + 
    xlab("County") + ylab("Revenue (Million USD)") + 
    scale_fill_discrete(name = 'Legend', labels=c("Total", "Crop", "Livestocks")) + 
    theme(axis.ticks.x = element_blank()) + 
    theme(panel.background = element_rect(colour='dark grey')) + 
    theme(strip.text.x = element_text(size = 20, face="bold"), 
     strip.background = element_rect(colour="dark grey")) 

# Add text on top of the bar 
qbarplot_yr_1 + geom_text(data = censusData, 
          aes(x = County, y = value + 150, label = format(value, nsmall = 0, scientific = FALSE)), 
          color="blue") 

**ggplot2 output**

Trả lời

15

Bạn cần phải né tránh các giá trị văn bản là tốt. Hãy thử

qbarplot_yr_1 + geom_text(data = censusData, 
     aes(x = County, group=variable, y = value + 150, 
     label = format(value, nsmall = 0, digits=1, scientific = FALSE)), 
     color="blue", position=position_dodge(.9), hjust=.5) 

Chúng tôi cũng cần group= để biết giá trị nào cần tránh.

+0

CẢM ƠN BẠN. Không biết tại sao tôi bỏ qua bao gồm cả 'nhóm' trong các cuộc gọi' geom_text() 'của tôi nhưng điều này đã cứu tôi! – Steven

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