Tôi đang cố vẽ các nhãn trông thông tin, rõ ràng và ngăn nắp.Trục ggplot2 tùy chỉnh và định dạng nhãn
I was following example và nêu thêm một câu hỏi về định dạng label
và axis
.
Ví dụ: tôi có dữ liệu bán hàng bao gồm Thương hiệu, Danh mục và Chi tiêu bằng EUR. Khi tổng số tiền của EUR lớn (hàng triệu nhãn trở lên) trông thực sự khó đọc và không mang tính thông tin.
Kết quả là, x-axis
nằm ở Scientific notation
và cũng trông thực sự không rõ ràng.
Tôi đã quản lý để định dạng nhãn theo cách tùy chỉnh: nó hiển thị Eur in hàng nghìn. geom_text(aes(label= paste(round(EUR/1000,0),"€"), y=pos), colour="white")
Có cách nào dễ dàng hơn hoặc tự động hơn không?
Vì Scientific notation
trông thực sự không rõ ràng, đối với trục tôi đã thử sử dụng scale_y_continuous(formatter = "dollar")
, nhưng điều này có vẻ không hoạt động. Hơn nữa, tôi không thể tìm thấy nếu có Eur
cũng được thực hiện thay vì đô la. Tôi tin rằng nó sẽ là tốt nhất để hiển thị y-axis
trong thousands
. Bất kỳ giải pháp nào?
Ngoài ra, tôi gửi kèm theo ví dụ tái sản xuất:
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="")
Bất kỳ ý tưởng nào trong biểu tượng 'sáng bóng' '' được hiển thị là '???'? – AK47