2017-03-13 2 views
5

Ich habe Probleme, die Y-Achse Text von Überschneidungen mit den Zecken mit ggplotly um ggplot zu stoppen. Wie kann ich das beheben? Ich habe den folgenden Code versucht:R: ggplot und plotly Achsenrand wird nicht geändert

enter image description here

set.seed(395) 
df1<- data.frame(CO2= c(cumsum(rnorm(1*36)), cumsum(rnorm(1*36))), 
        Group= rep(c("A","B"), each=36), 
        Segment=rep(seq(1,12),each=36)) 

plot<-ggplot(df1, aes(CO2, fill = Group)) + 
      geom_density(alpha = 0.8)+ 
      facet_wrap(~ Segment)+ 
      theme_bw()+ 
      labs(x="CO2", y="density") 
#Shouldn't the following work? 
    pb <- plotly_build(plot) 
    pb$layout$margin$l <- 200 
    pb$layout$margin$b <- 100 
    pb 
+0

Haben Sie versucht: http: // stackoverflow.com/questions/14487188/increase-distance-between-text-and-title-on-the-y-axis? – ottlngr

+0

Es scheint keinen Unterschied zu machen. Ich sollte klarstellen, ich benutze ggplotly – HCAI

+0

Ich bekomme 'Fehler in eval (expr, envir, enclos): Objekt 'y' nicht gefunden 'für den' ggplot' Anruf. –

Antwort

1

Lassen Sie uns ein einfaches reproduzierbares Beispiel aus here verwenden.

library(gapminder) 
library(plotly) 
p <- ggplot(gapminder, aes(x=gdpPercap, y=lifeExp)) + geom_point() + scale_x_log10() 
p <- p + aes(color=continent) + facet_wrap(~year) 
gp <- ggplotly(p) 

enter image description here

Wir können das die margins bewegen einstellen, wie durch MLavoie vorgeschlagen, aber dann auch unsere Achse Legende bewegt.

gp %>% layout(margin = list(l = 75)) 

enter image description here

Die Legende Achse ist eigentlich keine Legende, sondern eine Anmerkung, so läßt es sich bewegen zuerst:

gp[['x']][['layout']][['annotations']][[2]][['x']] <- -0.1 
gp %>% layout(margin = list(l = 75)) 

enter image description here

+0

Vielen Dank! Das funktioniert ein Vergnügen! Haben Sie Referenzen zu diesem Code oder zur Dokumentation? Ist es eine Plot-Sache oder eine ggplot-Funktion, die Sie optimieren? – HCAI

+0

@ HCAI: froh, es hat funktioniert! margins ist ein Plotly-Layout-Attribut (ich habe einen Link zu der ursprünglichen Antwort hinzugefügt), der zweite Teil ist ein Tweak/Hack des ggplot, um das Conversion-Ergebnis zu plotten. Die Konvertierung funktioniert normalerweise ziemlich gut, aber manchmal braucht es ein bisschen Hilfe. –

+0

Wenn ich das versuche, bekomme ich: Fehler in '* tmp *' [[2]]: Index außerhalb der Grenzen –