Come cambio la formattazione dei numeri su un asse con ggplot?


Answers

Ho anche trovato un altro modo di fare ciò che fornisce la notazione corretta 'x10 (apice) 5' sugli assi. Sto postando qui nella speranza che possa essere utile ad alcuni. Ho ricevuto il codice da here quindi non reclamerò alcun merito per questo, che giustamente va a Brian Diggs.

fancy_scientific <- function(l) {
     # turn in to character string in scientific notation
     l <- format(l, scientific = TRUE)
     # quote the part before the exponent to keep all the digits
     l <- gsub("^(.*)e", "'\\1'e", l)
     # turn the 'e+' into plotmath format
     l <- gsub("e", "%*%10^", l)
     # return this as an expression
     parse(text=l)
}

Che puoi usare come

ggplot(data=df, aes(x=x, y=y)) +
   geom_point() +
   scale_y_continuous(labels=fancy_scientific) 
Question

Sto usando R e ggplot per disegnare un grafico a dispersione di alcuni dati, tutto va bene tranne che i numeri sull'asse y stanno uscendo con la formattazione dell'esponente in stile computer, cioè 4e + 05, 5e + 05, ecc. Questo è ovviamente inaccettabile, quindi voglio che venga visualizzato per 500.000, 400.000 e così via. Anche ottenere una corretta notazione esponenziale sarebbe accettabile.

Il codice per la trama è il seguente:

p <- ggplot(valids, aes(x=Test, y=Values)) +
  geom_point(position="jitter") +
  facet_grid(. ~ Facet) +
  scale_y_continuous(name="Fluorescent intensity/arbitrary units") +
  scale_x_discrete(name="Test repeat") +
  stat_summary(fun.ymin=median, fun.ymax=median, fun.y=median, geom="crossbar")

Qualsiasi aiuto molto apprezzato.




Sono in ritardo per il gioco qui, ma nel caso in cui altri volessero una soluzione facile, ho creato un insieme di funzioni che possono essere chiamate come:

 ggplot + scale_x_continuous(labels = human_gbp)

che ti dà numeri leggibili per gli assi xey (o qualsiasi numero in generale).

Puoi trovare le funzioni qui: Github Repo Basta copiare le funzioni nel tuo script in modo da poterle chiamare.