Ich versuche, Etiketten, die informativ, klar und ordentlich aussehen zu zeichnen.Benutzerdefinierte ggplot2 Achse und Label-Formatierung
I was following example und warf eine weitere Frage über label
und axis
Formatierung.
Zum Beispiel habe ich Verkaufsdaten, die Marke, Kategorien und Ausgaben in EUR enthält. Wenn die Summe von EUR groß ist (Millionen oder mehr), sehen die Etiketten wirklich schwer zu lesen und nicht informativ aus.
Als Ergebnis ist x-axis
in Scientific notation
und sieht auch wirklich unsauber aus.
Ich habe es geschafft, Etiketten in gewohnter Weise zu formatieren: es zeigt Eur in Tausend. geom_text(aes(label= paste(round(EUR/1000,0),"€"), y=pos), colour="white")
Gibt es einen einfacheren oder automatisierten Weg?
Als Scientific notation
sieht wirklich unklar, für die Achse habe ich versucht mit scale_y_continuous(formatter = "dollar")
, aber das scheint nicht funktionieren. Außerdem konnte ich nicht feststellen, ob anstelle von Dollar auch Eur
implementiert ist. Ich glaube, dass es am besten wäre, y-axis
in thousands
zu zeigen. Irgendwelche Lösungen?
Auch lege ich reproduzierbaren Beispiel:
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="")
Irgendwelche Ideen, warum in 'shiny'' '' Symbol als '???' angezeigt wird? – AK47