r - 当 x 是离散变量时更改图形 y 轴的下限
问题描述
我正在尝试调整此图的 y 轴,使其从 1 而不是 0 开始。最好的方法是什么?
我过去针对此类问题使用的一种解决方案是使用 geom_rect 而不是 geom_bar。但是,这在这里不起作用,因为 x 轴不是连续的。
我试图创建一个单独的、连续的 x 变量,但它确实弄乱了图形的格式。
我希望它看起来像这张图,但 y 下限为 1,并且每个条向下移动 1 个单位以匹配。
代码:
groups %>%
ungroup() %>%
mutate(message = fct_relevel(message, "Personal", "General"),
enviroattitudeshalf = fct_relevel(enviroattitudeshalf, "Low Environmental Attitudes", "High Environmental Attitudes")) %>%
ggplot(aes(x = message, y = mean)) +
geom_col(width = 0.5, fill = "003900") +
geom_text(aes(label = round(mean, digits = 1), vjust = -2)) +
geom_errorbar(aes(ymin = mean - se, ymax = mean + se), width = .2, position = position_dodge(.9)) +
labs(title = "Environment: Evaluations of Personal and General Convincingness",
y = "Rating",
x = "Personal evaluation or general evaluation") +
ylim(0, 8) +
facet_wrap(~enviroattitudeshalf)
数据:
structure(list(enviroattitudeshalf = c("Low Environmental Attitudes",
"Low Environmental Attitudes", "High Environmental Attitudes",
"High Environmental Attitudes"), message = c("General", "Personal",
"General", "Personal"), mean = c(3.89473684210526, 3.37894736842105,
4.43636363636364, 5.10909090909091), se = c(0.145460372156746,
0.19522803582675, 0.160549137262631, 0.171509247396541)), row.names = c(NA,
-4L), groups = structure(list(enviroattitudeshalf = c("High Environmental Attitudes",
"Low Environmental Attitudes"), .rows = structure(list(3:4, 1:2), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = 1:2, class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
解决方案
使用coord_cartesian
:
library(tidyverse)
groups %>%
ungroup() %>%
mutate(message = fct_relevel(message, "Personal", "General"),
enviroattitudeshalf = fct_relevel(enviroattitudeshalf, "Low Environmental Attitudes", "High Environmental Attitudes")) %>%
ggplot(aes(x = message, y = mean)) +
geom_col(width = 0.5, fill = "003900") +
geom_text(aes(label = round(mean, digits = 1), vjust = -2)) +
geom_errorbar(aes(ymin = mean - se, ymax = mean + se), width = .2, position = position_dodge(.9)) +
labs(title = "Environment: Evaluations of Personal and General Convincingness",
y = "Rating",
x = "Personal evaluation or general evaluation") +
coord_cartesian(ylim = c(1, 8)) +
facet_wrap(~enviroattitudeshalf)
推荐阅读
- c# - 如何修复“事件必须是委托类型”错误?(接口内的事件数组)C#
- thingsboard - 如何更改 Thingsboard 规则引擎中的 deviceName 和 deviceType?
- laravel-8 - 如何在刀片/error.php 文件中使用控制器?
- python - 如何根据时间戳而不是位置查找地理空间数据集群?
- reactjs - 类型“IntrinsicAttributes & InferPropsInner”上不存在属性“X”
- javascript - 刷新令牌请求未设置为 cookie
- python - Python 硒爬行
- ruby - 你如何比较键值对 Ruby
- google-chrome-extension - 使用 chrome.alarms API 是在后台保留 MV3 Chrome 扩展的唯一方法吗?
- c - 关于C中运算符优先级的问题