我正在尝试使用以下代码绘制具有多个方面的堆积条形图:
dat <- read.csv(file="./fig1.csv", header=TRUE)
dat2 <- melt(dat, id.var = c("id", "col1", "label"))
ggplot(dat2, aes(x=id, y=value, fill = variable)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=dat2$label) +
facet_grid(. ~ col1) +
geom_col(position = position_stack(reverse = TRUE))
以下是我的数据的最小化示例:
id label col1 col2 col3 col4 col5
1 3 1 0.2 0.1 0.1 0.1
2 3 1 0.2 0.1 0.2 0.1
3 4 1 0.2 0.2 0.2 0.1
4 4 1 0.1 0.1 0.2 0.1
5 7 2 0.1 0.1 0.1 0.2
6 8 2 0.2 0.1 0.1 0.1
7 9 2 0.2 0.1 0.2 0.1
8 9 2 0.2 0.2 0.2 0.1
9 9 2 0.1 0.1 0.2 0.1
我遇到的问题是标签没有像我期望的那样出现。 col1为1的构面标签会在col1为2的构面上重复,这意味着标签(7,8,9,9,9)将被忽略。此外,当连续标签相同时,它们只出现一次。例如,当出现第一个标签3时,忽略再次为3的第二个标签。有没有人知道我如何在标签栏中列出标签?