können Sie scales::comma
verwenden, um dies zu handhaben (und auch leicht ein reproduzierbares Beispiel machen, auch mit einer großen Menge von Daten):
library(ggplot2)
dat <- data.frame(
workers = c(
rep("Q8", 100000),
rep("A2", 200000),
rep("S1", 200000)
)
)
ggplot(dat, aes(x = factor(""), fill = workers)) +
geom_bar() +
coord_polar(theta = "y") +
scale_x_discrete(name="") +
scale_y_continuous(label=scales::comma) +
theme_bw() +
theme(panel.grid=element_blank()) +
theme(panel.border=element_blank()) +
theme(axis.ticks=element_blank())
, die diese produziert Monstrosität:
Beachten Sie, dass Sie die Achsennummern "y" wirklich nicht anzeigen sollten, da sie in diesem Kontext keinen Sinn machen und die Kreissegmente entweder direkt beschriften oder den tatsächlichen Legendenbeschriftungen den Wert # 's hinzufügen sollten.
Aber könnte ich zu einer anderen vis schlagen drehen:
library(waffle)
library(dplyr)
count(dat, workers) %>%
mutate(trim=n/10000) -> df2
parts <- setNames(unlist(df2$trim), df2$workers)
waffle(parts, rows=4, title="Count", xlab="Each square represents 10,000 workers")
Wenn Sie die GitHub-Version verwenden ggplot2 Sie tun müssen, werden:
waffle(parts, rows=4, title="Count", xlab="Each square represents 10,000 workers") +
scale_fill_manual(name="workers",
values=c(Q8="#e41a1c", A2="#377eb8", S1="#4daf4a"),
na.translate=FALSE)
da es ein anderes Verhalten als die CRAN Version hat (das waffle
Paket wird aktualisiert, wenn das neue ggplot2 auf CRAN ist).
Sie sollten ein reproduzierbares Beispiel veröffentlichen. Die Antwort liegt wahrscheinlich in der Überlagerung von 'scale_y_continuous' mit einem 'label'-Argument, wobei angegeben wird, welche Formatierung die Variable count annehmen soll, möglicherweise durch einen Aufruf von' format'. – shayaa
@shayaa: Ich habe das reproduzierbare Beispiel hinzugefügt, aber dieses Beispiel zeigt nicht offensichtlich das Problem mit e + 05, weil ich nicht so viele Zeilen posten kann. – FiofanS
kann Ihre Formatierung nicht reproduzieren, selbst wenn Sie Ihre Daten millionenfach replizieren, um die Zählwerte im 1e6-Bereich zu erhalten. Ihr Problem könnte 'scipen' in 'Optionen' sein. – shayaa