2015-05-28 4 views
6

Я могу найти варианты выравнивания меток легенды и осей в ggplot, но не для ярлыков меток.Этикетки с метками меток влево-вправо ggplot

Возможно ли, чтобы эти метки не выровнены по правому краю с графиком, но выравнивались по левому краю с самого начала самой длинной метки или на некотором расстоянии от общей границы графика?

Пример:

set.seed(1) 
library(ggplot2) 
axisLabels.x <- c("This is a longer label", 
       "Short label", "Short label","Short label","Short label", 
       "This is again a longer label") 
labels.wrap <- lapply(strwrap(axisLabels.x,50,simplify=F),paste,collapse="\n") # word wrap 
gg <- data.frame(x=LETTERS[1:6], y=sample(1:10,6)) 
ggplot(gg) + 
    geom_bar(aes(x,y, fill=x), stat="identity")+ 
    scale_x_discrete(labels=labels.wrap)+ 
    scale_fill_discrete(guide="none")+ 
    labs(x="",y="Response")+ 
    coord_flip() 

enter image description here


Требуются:

enter image description here

+0

'тема (axis.text.y = element_text (hjust = 0))' – user20650

+0

возможно дубликат [изменения размера шрифта и направление текста осей в ggplot2] (http://stackoverflow.com/questions/13297995/changing-font-size-and-direction-of-axes-text-in-ggplot2) – user20650

ответ

4

Как обеспечивает решение, я делаю @ комментарий user20650 в ответ.

set.seed(1) 
library(ggplot2) 
axisLabels.x <- c("This is a longer label", 
        "Short label", "Short label","Short label","Short label", 
        "This is again a longer label") 
labels.wrap <- lapply(strwrap(axisLabels.x,50,simplify=F),paste,collapse="\n") # word wrap 
gg <- data.frame(x=LETTERS[1:6], y=sample(1:10,6)) 
plot <- ggplot(gg) + 
    geom_bar(aes(x,y, fill=x), stat="identity")+ 
    scale_x_discrete(labels=labels.wrap)+ 
    scale_fill_discrete(guide="none")+ 
    labs(x="",y="Response")+ 
    coord_flip() 

И здесь мы идем

plot + theme(axis.text.y = element_text(hjust = 0)) 

left aligned y scale labels