避免将 alpha 美学应用于 ggplot2 中的 geom_text
Avoid applying alpha aesthetic to geom_text in ggplot2
我有以下 ggplot2
图表。我不希望价值标签透明。
代码:
ggplot(test, aes(x = reorder(org, -as.numeric(level)), y = obsAvg, fill = level, alpha = round)) +
geom_bar(stat = "identity", position = "dodge") +
scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73")) +
scale_alpha_manual(values = c(.5, .75, 1), guide = FALSE) +
labs(title = "Average Observation Score by Round", y = "", x = "", fill = "Group") +
theme_bw() +
geom_text(aes(label = round(obsAvg,1)), vjust = -.5, size = 4, fontface="bold", position = position_dodge(width = .9)) +
scale_y_continuous(limits = c(0,4), expand = c(0,0)) +
theme(legend.position="bottom")
数据:
set.seed(1)
test <- data.frame(
org = rep(c("Mammals", "Cats", "Tigers", "Lions", "Cheetahs"), 3),
level = rep(c("Animals", "Family", rep("Species", 3)), 3),
group = rep("Cats",15),
round = rep(c("Round1", "Round2", "Round3"),5),
obsAvg = runif(15, 1, 4)
)
我曾尝试将 alpha = round
移动为 geom_bar()
的美学,但后来我失去了对标签的闪避:
如何复制顶部图表但不将透明美学应用到我的标签?
我会将 aes(alpha=)
移动到 geom_bar
,然后将 aes(group=)
添加到 geom_text
以恢复闪避。
ggplot(test, aes(x = reorder(org, -as.numeric(level)), y = obsAvg, fill = level)) +
geom_bar(aes(alpha=round), stat = "identity", position = "dodge") +
scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73")) +
scale_alpha_manual(values = c(.5, .75, 1), guide = FALSE) +
labs(title = "Average Observation Score by Round", y = "", x = "", fill = "Group") +
theme_bw() +
geom_text(aes(label = round(obsAvg,1), group=round), vjust = -.5, size = 4, fontface="bold", position = position_dodge(width = .9)) +
scale_y_continuous(limits = c(0,4), expand = c(0,0)) +
theme(legend.position="bottom")
这个情节很漂亮。
我有以下 ggplot2
图表。我不希望价值标签透明。
代码:
ggplot(test, aes(x = reorder(org, -as.numeric(level)), y = obsAvg, fill = level, alpha = round)) +
geom_bar(stat = "identity", position = "dodge") +
scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73")) +
scale_alpha_manual(values = c(.5, .75, 1), guide = FALSE) +
labs(title = "Average Observation Score by Round", y = "", x = "", fill = "Group") +
theme_bw() +
geom_text(aes(label = round(obsAvg,1)), vjust = -.5, size = 4, fontface="bold", position = position_dodge(width = .9)) +
scale_y_continuous(limits = c(0,4), expand = c(0,0)) +
theme(legend.position="bottom")
数据:
set.seed(1)
test <- data.frame(
org = rep(c("Mammals", "Cats", "Tigers", "Lions", "Cheetahs"), 3),
level = rep(c("Animals", "Family", rep("Species", 3)), 3),
group = rep("Cats",15),
round = rep(c("Round1", "Round2", "Round3"),5),
obsAvg = runif(15, 1, 4)
)
我曾尝试将 alpha = round
移动为 geom_bar()
的美学,但后来我失去了对标签的闪避:
如何复制顶部图表但不将透明美学应用到我的标签?
我会将 aes(alpha=)
移动到 geom_bar
,然后将 aes(group=)
添加到 geom_text
以恢复闪避。
ggplot(test, aes(x = reorder(org, -as.numeric(level)), y = obsAvg, fill = level)) +
geom_bar(aes(alpha=round), stat = "identity", position = "dodge") +
scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73")) +
scale_alpha_manual(values = c(.5, .75, 1), guide = FALSE) +
labs(title = "Average Observation Score by Round", y = "", x = "", fill = "Group") +
theme_bw() +
geom_text(aes(label = round(obsAvg,1), group=round), vjust = -.5, size = 4, fontface="bold", position = position_dodge(width = .9)) +
scale_y_continuous(limits = c(0,4), expand = c(0,0)) +
theme(legend.position="bottom")
这个情节很漂亮。