r - 如何在ggplot线图中将y轴从负值固定为正值
问题描述
我有以下代码
library(tidyverse)
dat <- structure(list(gene = c("Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr",
"Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr",
"Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr",
"Ahr", "Ahr", "Ahr", "Ahr", "Ahr", "Ahr"), ct = c("A",
"A", "A", "A", "A", "A",
"B", "B", "B",
"B", "B", "B",
"C", "C", "C", "C", "C",
"C", "D ", "D ", "D ",
"D ", "D ", "D ", "E",
"E", "E", "E", "E", "E"), tc = c("CONTROL",
"DAY03", "DAY06", "DAY09", "DAY12", "DAY15", "CONTROL", "DAY03",
"DAY06", "DAY09", "DAY12", "DAY15", "CONTROL", "DAY03", "DAY06",
"DAY09", "DAY12", "DAY15", "CONTROL", "DAY03", "DAY06", "DAY09",
"DAY12", "DAY15", "CONTROL", "DAY03", "DAY06", "DAY09", "DAY12",
"DAY15"), zs = c(-0.408248, -0.408248, -0.408248, -0.408248,
2.041241, -0.408248, -0.408248, -0.408248, -0.408248, -0.408248,
-0.408248, 2.041241, -0.908633, 0.996489, 0.732923, -0.908633,
0.996489, -0.908633, -0.408248, 2.041241, -0.408248, -0.408248,
-0.408248, -0.408248, -0.408248, -0.408248, -0.408248, -0.408248,
2.041241, -0.408248)), row.names = c(NA, -30L), class = c("tbl_df",
"tbl", "data.frame"))
zslp <- ggplot(dat, aes(x = tc, y = zs, group = 1)) +
geom_line() +
# ylim(c(-2, 2)) + # to be uncomment
facet_wrap(~ct) +
theme_bw() +
theme(axis.text.x=element_text(angle = 90, hjust = 1, vjust = 0.5)) +
xlab("")
zslp
这产生了这个情节:
请注意,y 轴的范围从 -1 到 2。我想要做的是将它从 -2 修复到 2。
所以我取消了这一行的注释:
ylim(c(-2, 2)) +
但它产生的情节是这样的:
请注意,A、B、D、E 面板是平的。我该如何解决这个问题?
解决方案
使用coord_cartesian
代替ylim
zslp <- ggplot(dat, aes(x = tc, y = zs, group = 1)) +
geom_line() +
coord_cartesian(ylim=c(-2,2)) +
facet_wrap(~ct) +
theme_bw() +
theme(axis.text.x=element_text(angle = 90, hjust = 1, vjust = 0.5)) +
xlab("")
zslp
诀窍是,如果您使用ylim
, ggplot 将忽略所有不在限制之间的值(并且您确实有一些高于 2 的值)。coord_cartesian
无论如何都绘制了这些值
推荐阅读
- android - Android:RemoteConnection 初始化失败:RemoteConnection 无法打开管道
- python - ModuleNotFoundError:尽管在 Anaconda 导航器上安装了 ffmpeg,但 Spyder 上没有名为“ffmpeg”的模块
- variables - 将工作表设置为从组合框获得的文本
- javascript - 当其中一个对象为空时,如何映射对象数组?
- jetbrains-ide - JetBrains Rider 在评估时崩溃
- firebase - Flutter 从 Firebase 存储中获取图像并在应用程序中显示
- cocoa - 在菜单栏下定位窗口?
- node.js - 在 Heroku 上使用 puppeteer 绕过 Cloudflare 的验证码
- javascript - 如何在不调整浏览器大小的情况下创建“滑入”动画?
- c# - WPF DataGrid Checkbox 不更新源