2017-01-23 9 views
1

Я пишу код, используя rmarkdown, и выводя результат как html-документ. У меня есть кадр данных, из которого я хочу создать гистограмму. Теперь легенда слишком длинная, поэтому она перекрывает и покрывает часть графика. Я пробовал много вещей, но не смог выровнять направление метки, направление легенды. Я могу только удалить легенду, используя (legend.position = "none"). Я не могу даже переместить легенду влево, вправо, снизу или сверху, используя «legend.position». Есть ли способ уменьшить шрифт меток или выровнять их по вертикали? В основном, чтобы сделать легенду меньше или переместить ее где-нибудь там, где может быть больше места, чтобы избежать каких-либо перекрытий ...не может переименовать легенду в ggplot

Может кто-нибудь мне помочь?

Ниже приведен код:

create_bar_graph <- function(ggdata, ggaxis, ggfac) { 
     p <- ggplot(ggdata %>% filter_(!is.na(ggaxis)), 
        aes_string(x = ggaxis, fill = ggaxis)) + 
        geom_bar() + 
        facet_wrap(ggfac) + 
        labs(
         # title = "Insurance", 
         y = "Nb of respondent") + 
        # coord_flip() + 
        scale_fill_brewer(palette = "PuRd") + 
        guides(fill = guide_legend(title = NULL)) + 
        theme(axis.text.x =       
        element_blank(),legend.position = "none") 
     return(p) 
} 

caption_func <- function(text){ 
    htmltools::tags$caption(style = 'caption-side : top; 
          text-align = center', 
          htmltools::h3(text)) 
} 
data = data.frame(
      product = rep(c("A","B"),each = 6), 
      disease = rep(c("a) Partial onset seizures", 
          "b) Partial onset seizures with secondary generalization", 
          "c) Primary generalized tonic-clonic seizures (PGTCS)", 
          "d) I don't know the type of Epilepsy I have")),3) 

ggplotly(create_bar_graph(data,"disease", "product")) 

Выход у меня есть что-то вроде этого (высота стопки из кода выше может отличаться от высоты в изображении, но все остальное такое же): enter image description here

+1

Прочитайте информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com)/вопросы/5963269). Это облегчит вам помощь другим людям. – Axeman

+0

Привет, извините за это. Я долго задерживался на этом и искал много нитей и пытался найти все, что мог, но ничего не сработало, и теперь я измучен и разочарован. Я знаю, что это неприемлемо и сожалею об этом. –

+1

Все в порядке, вы можете отредактировать вопрос. Также очень важно уточнить, что вы используете 'plotly', а не только' ggplot'. – Axeman

ответ

0

Таким образом, выясняется, что моя проблема может быть отсортирована с использованием параметра «ширина» из графика. Я попытался увеличить ширину, и, к счастью, легенда продолжала смещаться вправо.

ggplotly(create_bar_graph(data,"disease", "product"),width = 1000) 

Спасибо всем, кто проводит свое драгоценное время, взглянув на мою проблему. Думаю, я отправил его, прежде чем пытаться. Извините за неприятностей, ребята.