Sto cercando di disegnare etichette che sembrano informative, chiare e ordinate.Formattazione personalizzata dell'asse e dell'etichetta ggplot2
I was following example e sollevato ancora una domanda sulla formattazione label
e axis
.
Ad esempio, ho dati di vendita che includono Marchio, Categorie e Spesa in EUR. Quando la somma di EUR è grande (milioni o più) le etichette sembrano davvero difficili da leggere e non informative.
Come risultato, x-axis
è in Scientific notation
e sembra davvero non pulito.
Sono riuscito a formattare le etichette in modo personalizzato: mostra Eur in migliaia. geom_text(aes(label= paste(round(EUR/1000,0),"€"), y=pos), colour="white")
C'è un modo più semplice o automatico?
Come Scientific notation
sembra davvero poco chiaro, per l'asse ho provato a utilizzare scale_y_continuous(formatter = "dollar")
, ma questo sembra non funzionare. Inoltre, non è stato possibile trovare se è stato implementato anche lo Eur
anziché il dollaro. Credo che sarebbe il migliore per mostrare y-axis
in thousands
. Qualche soluzione?
Inoltre, allego esempio riproducibile:
library(plyr)
library(dplyr)
library(ggplot2)
library(scales)
set.seed(1992)
n=68
Category <- sample(c("Black", "Red", "Blue", "Cyna", "Purple"), n, replace = TRUE, prob = NULL)
Brand <- sample("Brand", n, replace = TRUE, prob = NULL)
Brand <- paste0(Brand, sample(1:5, n, replace = TRUE, prob = NULL))
EUR <- abs(rnorm(n))*100000
df <- data.frame(Category, Brand, EUR)
df.summary = df %>% group_by(Brand, Category) %>%
summarise(EUR = sum(EUR)) %>% # Within each Brand, sum all values in each Category
mutate(pos = cumsum(EUR)-0.5*EUR)
ggplot(df.summary, aes(x=reorder(Brand,EUR,function(x)+sum(x)), y=EUR, fill=Category)) +
geom_bar(stat='identity', width = .7, colour="black", lwd=0.1) +
geom_text(aes(label=ifelse(EUR>100,paste(round(EUR/1000,0),"€"),""),
y=pos), colour="white") +
coord_flip()+
labs(y="", x="")
Qualsiasi idea per cui il simbolo '''stato'' è mostrato come' ??? '? – AK47