说我有以下叠加条形图:
# Load library
library(ggplot2)
# Convert to factors
mtcars$gear <- factor(mtcars$gear)
mtcars$cyl <- factor(mtcars$cyl)
# Plot results
p <- ggplot(data = mtcars, aes(x=gear, fill=cyl) ) + geom_bar()
print(p)
给出,
在此图中,每个组(即cyl
)是不同的颜色,所有条形图都是相同的颜色方案。现在,我想要做的是将每个条形图作为单个不同的颜色,但这些组由alpha指定。例如,gear
值为3,4和5的条形可分别为红色,蓝色和绿色,cyl
值分别由1,0.75和0.5的alpha值表示。 。这样,gear
等于3的条形图都是相同的颜色(红色),但cyl
s显示为不同的阴影。这可能吗?
下面的代码实现了alpha值:
# Function for adding alphas
alpha_bar <- function(x)ifelse(x == 4, 1, ifelse(x == 6, 0.75, ifelse(x == 8, 0.5, NA)))
# Add alphas
mtcars$alpha <- alpha_bar(mtcars$cyl)
# Plot results
p <- ggplot(data = mtcars, aes(x=gear, fill=cyl, alpha = alpha) ) + geom_bar()
print(p)
这会使alpha值正确。但是,如果我尝试使用类似的东西来改变每个条形的颜色,
p <- p + scale_fill_manual(values = c("red", "blue", "green"))
它会更改cyl
值而不是gear
值的颜色。有什么建议吗?