gpt4 book ai didi

r - ggplot2:添加另一个变量作为第二行 x 轴标签

转载 作者:行者123 更新时间:2023-12-04 02:04:28 26 4
gpt4 key购买 nike

使用这个data.frame

> df
var value percent
1 AAAA BBBB CCCCC -0.5 9
2 FFFF DDDD CCCCC 0.3 13
3 BBBB NNNN DDDDD 0.7 17
4 NNNN MMMM BBBBB -0.4 25

我想添加 percent 和方括号之间的符号“like this (9%)”作为第二行 x 轴标签.

我是这样做的
enter image description here

使用这个脚本(在这个 answer 之后)

my.labels <- c(
"AAAA BBBB CCCCC\n(9%)",
"FFFF DDDD CCCCC\n(13%)" ,
"BBBB NNNN DDDDD\n(17%)",
"NNNN MMMM BBBBB\n(25%)"
)

ggplot(df, aes(x = var, y = value))+
geom_bar(stat ="identity", width = 0.4)+
scale_x_discrete(labels = my.labels)

只对 4 个变量执行此操作很好,但如果我有很多变量,这将花费时间。我认为应该有一种更快/更有效的方法来对许多变量执行此操作。任何建议将不胜感激。

最佳答案

my.labels <- paste0(df$var, "\n (", df$percent, "%)")

ggplot(df, aes(x = var, y = value))+
geom_bar(stat ="identity", width = 0.4)+
scale_x_discrete(labels = my.labels)

enter image description here

编辑:

如果使用 scales="free_x" 实现了 facet-wrap,上面的代码将不会直接工作:

 p <- ggplot(df, aes(x = var, y = value)) +
geom_bar(stat ="identity", width = 0.4)

p +
facet_wrap(~var, scales="free_x") +
scale_x_discrete(labels = my.labels)

enter image description here

要让标签正确显示,首先将自定义标签添加回 data.frame

df$lab <- my.labels

然后使用 facet_wrap 变量作为 scale_x_discrete 函数的中断值:

 p + 
facet_wrap(~var, scales="free_x") +
scale_x_discrete(labels = df$lab, breaks=df$var)

enter image description here

关于r - ggplot2:添加另一个变量作为第二行 x 轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com