繁体   English   中英

更改 ggplot2 小提琴图中的轴标签和刻度线

[英]Changing axis labels and tick marks in ggplot2 violin plots

我有一把小提琴 plot,只是我想更改刻度和轴标签。 我尝试了一些不同的变化(最后一个在下面)。 我觉得我只是一个逗号或加号。 我希望 y 轴为“SR Observed”,x 轴标签为“Forest Type”,x 轴刻度 label 为“Bear Oak”和“Oak-Hickory”。 大多数解决方案都涉及 ggplot2 以外的包,但我希望在 ggplot2 中看到解决方案。

非常感谢!

杰夫

geom_violin()

# p + scale_x_discrete(breaks=c("bear.oak", "oak.hickory"),
#                     labels=c("Bear Oak", "Oak-Hickory")) 

p + stat_summary(fun.y=median, geom="point", size=2, color="red")```

structure(list(forest.type = c("bear.oak", "bear.oak", "bear.oak", 
"bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", 
"bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", 
"bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", 
"bear.oak", "bear.oak", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "bear.oak", 
"bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", 
"bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", 
"bear.oak", "bear.oak", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", 
"oak.hickory", "oak.hickory"), S.obs = c(13, 9, 9, 5.5, 10, 6, 
8, 9.333333333, 9, 9, 11, 8, 9, 9, 10, 11, 8.333333333, 7.5, 
6, 13, 12.5, 9, 9.5, 9, 7, 7, 8, 9, 8, 6, 9, 6, 3, 2, 2, 2, 4, 
3, 11, 5.8, 5.4, 6.4, 6.6, 5, 11, 10, 9.333333333, 6, 10, 10, 
9, 7, 7, 5, 10, 11, 13, 5, 7, 8, 7, 9, 7, 8, 8, 11, 11.5, 16.5, 
4, 7, 6, 5.5, 5, 7, 7, 13, 16, 7, 11, 8.5, 11, 12, 12, 14, 11, 
11, 6, 8.5, 4, 10, 7, 6, 7, 11, 5, 5, 8, 7, 11.5, 10, 8, 5, 9, 
6, 8, 5.5, 7, 4.5, 7, 7, 6.5, 7.5, 5.5, 5, 7.5, 9.5, 6, 8, 5.5, 
9.25, 3.666666667, 5.5, 7.5, 6.5, 6, 8, 6, 13, 14, 14.5, 10.33333333, 
10, 6, 5, 9, 8)), class = "data.frame", row.names = c(NA, -136L
))

假设上面的数据保存为df ,我建议首先使用forcats::fct_recode重新编码你的关卡。 您可以使用labs()设置轴标签:

library(tidyverse)
df |> 
  mutate(forest_type = fct_recode(forest.type,
                                  "Bear Oak" = "bear.oak",
                                  "Oak-Hickory" = "oak.hickory")) |> 
  ggplot(aes(x = forest_type, y = S.obs)) +
  geom_violin() +
  labs(x = "Forest Type", y = "SR Observed")

代表 package (v2.0.1) 于 2022 年 8 月 23 日创建

遵循@yacine-hajji 方法,您还可以为 plot 中的级别设置手动标签,而不是更改数据:

ggplot(df, aes(x = forest.type, y = S.obs)) + 
  geom_violin()  + 
  scale_x_discrete(labels = c("bear.oak" = "Bear Oak",
                              "oak.hickory" = "Oak-Hickory"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM