我正在尝试使用R中的ggplot进行堆叠的barplot,使用y轴的log_10比例,但是我得到了错误的绘图。
这是我的代码:
library(reshape2)
library(ggplot2)
DF <- structure(list(Worker = 1:18, Seed = c(300, 40, 200, 0.1, 0.1,
0.1, 1000, 0.1, 0.1, 30, 45, 0.1, 13, 0.1, 50, 0.1, 0.1, 30),
Boosted = c(0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
35, 0.1, 0.1, 13, 0.1, 0.1, 0.1, 0.1, 0.1), Online = c(0.1,
0.1, 0.1, 15000, 60, 500, 0.1, 100, 450, 0.1, 200, 500, 0.1,
5000, 0.1, 70, 1000, 500)), class = "data.frame", row.names = c(NA,
-18L))
DF1 <- melt(DF, id.var="Worker")
ggplot(DF1, aes(x = Worker, y = value, fill = variable)) +
geom_bar(stat = "identity") +
xlab("id") +
ylab("# of x") +
labs(fill = "") +
scale_fill_manual(values = cols,
labels = c("Mobile", "Laptop","Online User")) +
scale_x_continuous(breaks = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)) +
expand_limits(x = 1, y = 1) +
scale_y_log10(limits = c(1,1e5),
breaks = scales::trans_breaks("log10", function(x) 10^x),
labels = scales::trans_format("log10", scales::math_format(10^.x)))
在下面看到的图像中,某些ID的条是错误的:例如,参见ID 10和13。
我想念什么?我还尝试过仅在log(value)
中使用ggplot(DF1, aes(x = Worker, y = log(value), fill = variable))
,但是我也得到了相同的结果。