2015-05-01 26 views
9

Böyle ggplot2 kullanılarak aşağıdaki grafik olarak here:Ggplot2 yığılmış çubuğundaki yığınlar arasında yer açmak mümkün mü?

DF <- read.table(text="Rank F1  F2  F3 
1 500 250 50 
2 400 100 30 
3 300 155 100 
4 200 90  10", header=TRUE) 

library(reshape2) 
DF1 <- melt(DF, id.var="Rank") 

library(ggplot2) 
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
geom_bar(stat = "identity") 

bir yığılmış bir çubuk oluşturmak için mümkün Bu örnek sürmüştür Yığınları farklı renklerle ayırt etmek istemiyorum.

enter image description here

DÜZENLEME

: Pascal yorumlara dayanarak,
ggplot(DF1, aes(x = Rank, y = value)) + 
geom_bar(stat = "identity",lwd=2, color="white") 

enter image description here

Hala barlar için beyaz sınırları var

.

+2

, bu tür color' ve' lwd' 'gibi diğer argümanlar, ekleyebilir. –

+0

Renk sorun değil, yığınlar arasındaki boşluk 'lwd' ile çözülemiyor – Soheil

+0

En azından denediniz mi? –

cevap

6

Bu, örnek resminize ulaşabileceğim en yakın nokta. Zaten sıraladığınızın ötesinde bir gelişme değil, gri arka plan üzerinde beyaz çubuk sınırlarına daha az önem veriyor.

library(ggplot2) 
p <- ggplot(DF1, aes(x = Rank, y = value, group = variable)) 
p <- p + geom_bar(stat = "identity", position = "stack", lwd = 1.5, 
        width = 0.5, colour = "white", fill = "black")   
p <- p + theme_classic() 
p <- p + theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) 
p 

üretir Yani:

gri arka planı tutmak istiyorsanız öyle gri hangi gölge tam olarak öğrenebilirsiniz ve arka plan ızgaralar kaldırılırken hattı için o rengi kullanmak (Bu doğru gölge değildir).

p <- ggplot(DF1, aes(x = Rank, y = value)) 
p <- p + geom_bar(stat = "identity", position = "stack", lwd = 1.5, 
        width = 0.5, colour = "grey", fill = "black")   
p <- p + theme(panel.grid = element_blank()) 
p 

Bu çözeltiye ile ilgili bir sorun, çok küçük gruplar görülemez olmasıdır (örneğin, Derece = 4, değişken F3 = 10 olduğunda, bu küçük bir değer tam beyaz çubuk çerçevesi ile kaplanır).

Sizin örnek veriler: geom_bar` `in

DF1 <- structure(list(Rank = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 
3L, 4L), variable = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L), .Label = c("F1", "F2", "F3"), class = "factor"), 
    value = c(500L, 400L, 300L, 200L, 250L, 100L, 155L, 90L, 
    50L, 30L, 100L, 10L)), row.names = c(NA, -12L), .Names = c("Rank", 
"variable", "value"), class = "data.frame") 
İlgili konular