我有一个df
包含三列的数据框:TASK
、CONDITION
和SCORE
。我想表示数据:
- 作为条形图(我正在使用
geom_col
) - 每个都有一个单独的情节
TASK
(我正在使用facet_wrap(~TASK)
) - 每个都有一个单独的栏
CONDITION
(我正在使用ggplot(df, aes(x=CONDITION))
)
此外,预期的行为是,如果给定条形的数据总和达到给定百分比,则该条应该与达到相同百分比的其他条具有相同的颜色。不幸的是,我无法让它发挥作用。
在下面的最小示例中,3 个柱达到 100%,因此我希望它们按照说明都是蓝色的,high="blue"
但这不是正在发生的事情。
Input =("
TASK CONDITION SCORE
GAU 0 0.25
GAU 0 0.25
GAU 0 0.25
GAU 0 0.25
GAU 1 0.2
GAU 1 0.2
GAU 1 0.2
GAU 1 0.2
GAU 1 0.2
PLN 0 0.3333
PLN 0 0.3333
PLN 0 0
PLN 1 0.5
PLN 1 0.5
")
df <- read.table(textConnection(Input),
header=TRUE)
df$CONDITION <- factor(df$CONDITION)
library(ggplot2)
ggplot(df, aes(x=CONDITION, y=SCORE, fill=SCORE)) +
geom_col() +
ggtitle("Performance") +
ylab("Total") +
scale_y_continuous(labels = scales::percent) +
facet_wrap(~TASK) +
scale_fill_gradient(low="red", high="blue")