ggplot2 doğrudan etiket ekleyin: Create non-overlapping stacked area plot with ggplot2Bu burada söz bir devamıdır geom_area grafiği
Aşağıdaki kod tarafından oluşturulan bir ggplot2 alan grafik var. Grafiğin sağ tarafında names
etiketlerinin hizalanmasını istiyorum. Bence directlabels
işe yarayabilir, ancak en akıllı olanı denemek için istekliyim.
require(ggplot2)
require(plyr)
require(RColorBrewer)
require(RCurl)
require(directlabels)
link <- getURL("http://dl.dropbox.com/u/25609375/so_data/final.txt")
dat <- read.csv(textConnection(link), sep=' ', header=FALSE,
col.names=c('count', 'name', 'episode'))
dat <- ddply(dat, .(episode), transform, percent = count/sum(count))
# needed to make geom_area not freak out because of missing value
dat2 <- rbind(dat, data.frame(count = 0, name = 'lane',
episode = '02-tea-leaves', percent = 0))
g <- ggplot(arrange(dat2,name,episode), aes(x=episode,y=percent)) +
geom_area(aes(fill=name, group = name), position='stack') + scale_fill_brewer()
g1 <- g + geom_dl(method='last.points', aes(label=name))
Ben
directlabels
yeni ve etiketler alanlar ile aynı renkleri ile grafiğin sağ tarafına hizalamak nasıl gerçekten emin marka değilim. etiket eklemek için
geom_text
teşekkürler. Yönergeleri anlamaya ihtiyacım var, çünkü bu yaklaşımın genel olarak nasıl ayrılabileceğini bilmiyorum. – Idr
@csgillespie, Bu yararlı oldu teşekkürler. Burada kullandığım sözdizimi (başka bir df): '' + geom_text (data = alt kümesi (df, Yıl == "2012"), aes (x = Yıl, y = cumsum (değer), etiket = değişken), vjust = 6 , hjust = -.2, size = 4), '' vjust'' ve '' hjust'' parametrelerini doğru elde edebilmek için fiddly buldum. Denemek istediğim, "cumsum" 'u, deneme yanılma yöntemiyle keşfettiğim "aes()" e iletebilirsiniz. Sağdaki açıklama için, renkleri görüntüyle aynı sırayla almak için '' + kılavuzları (fill = guide_legend (reverse = TRUE)) '' ayarlamak faydalı olur. Kullanımdan kaldırılan "opts" işlevini güncellemek istiyor musunuz? – PatrickT
Ve dataframe son elemanını yakalamak için ('' 06-vasıl morina-ball'' OP ve 'yukarıda benim yorumunda' 2012''), siz ('' kuyruk kullanabilirsiniz) '' '1' argümanı ile fonksiyon, örn. kuyruk (df2.1 $ Yıl, 1) '' – PatrickT