r - 当 y 轴反转时,防止 x 轴标签移动到绘图顶部
问题描述
我最近更新了一些软件包,我认为它改变了我用来创建 96 孔板布局的一些代码的行为。
这是代码:
ggplot(NULL, aes(x=Column, y=Row)) +
geom_point(data=expand.grid(seq(1, 12), seq(1,8)),
aes(x=Var1, y=Var2),
color="grey90",
fill="white",
shape=21,
size=12) +
coord_fixed(ratio=(13/12)/(9/8),
xlim=c(0.5, 12.5),
ylim=c(0.5, 8.5)) +
scale_y_reverse(breaks=seq(1, 8),
labels=LETTERS[1:8]) +
scale_x_continuous(breaks=seq(1, 12))
如果我不反转 y 轴,我对 x 轴没有任何问题:
ggplot(NULL, aes(x=Column, y=Row)) +
geom_point(data=expand.grid(seq(1, 12), seq(1,8)),
aes(x=Var1, y=Var2),
color="grey90",
fill="white",
shape=21,
size=12) +
coord_fixed(ratio=(13/12)/(9/8),
xlim=c(0.5, 12.5),
ylim=c(0.5, 8.5)) +
scale_y_continuous(breaks=seq(1, 8),
labels=LETTERS[1:8]) +
scale_x_continuous(breaks=seq(1, 12))
寻找一种在不弄乱 x 轴的情况下生成 y 轴反转的绘图的方法。作为奖励,我一直在尝试想出一种方法,使点的大小与图形的大小一起缩放,以便在缩小绘图大小时它们不会重叠:
解决方案
反过来是由于笛卡尔平面是如何实现的。为避免这种情况,请改用相反的ylim = c(8.5, 0.5)
:
ggplot(NULL, aes(x=Column, y=Row)) +
geom_point(data=expand.grid(seq(1, 12), seq(1,8)),
aes(x=Var1, y=Var2),
color="grey90",
fill="white",
shape=21,
size=12) +
coord_fixed(ratio=(13/12)/(9/8),
xlim=c(0.5, 12.5),
ylim=c(8.5, 0.5)) +
scale_y_reverse(breaks=seq(1, 8),
labels=LETTERS[1:8]) +
scale_x_continuous(breaks=seq(1, 12))
推荐阅读
- time - Anylogic中的队列和时间测量问题
- python - 通过切换拨动开关来冻结按钮
- python - 从不同文件夹导入python类的问题
- c# - 有没有办法将二维码导出为图像?
- typescript - 将代码转换为 TypeScript 时出现“没有重载匹配此调用”错误
- laravel - 如何将一条路由添加到 2 个不同的中间件 (auth) 而不必在 Laravel 中复制它?
- r - 根据其他列的值将列添加到数据框
- haskell - Haskell:之前的返回被之后的单子取消。如何?
- java - 在 Spring Boot 中使用资源服务器请求的资源上不存在“access-control-allow-origin”标头
- url - 有没有办法让我的云存储桶内容只对我网站的订阅者公开?