gpt4 book ai didi

r - 将x或y轴与刻度标签一起移动到单个ggplot的中间(无构面)

转载 作者:行者123 更新时间:2023-12-04 16:58:38 25 4
gpt4 key购买 nike

我在Excel中进行了以下绘制:

enter image description here

但是后来我想我可以通过使用ggplot使它更漂亮。我得到了这么远:

enter image description here

如果您感到好奇,那么数据基于我的answer here,尽管并不重要。该图是具有某种修饰的标准ggplot2构造,并且通过p + geom_hline(aes(yintercept=0))(p是ggplot对象)可以实现穿过中间x轴的粗线。

我觉得Excel绘图中的轴配置更好。它强调了0行(当数据是金钱时很重要),并且由于不必从底部一直跟踪行,因此查找截距要容易得多。这也是人们在纸或板上绘图时绘制轴的方式。

轴也可以像这样在ggplot中移动吗?我不仅需要线,还希望刻度线标签也移动。如果是,怎么办?如果否,原因是技术性还是设计性的?如果是设计使然,那么为什么要做出决定呢?

最佳答案

尝试这个,

shift_axis <- function(p, y=0){
g <- ggplotGrob(p)
dummy <- data.frame(y=y)
ax <- g[["grobs"]][g$layout$name == "axis-b"][[1]]
p + annotation_custom(grid::grobTree(ax, vp = grid::viewport(y=1, height=sum(ax$height))),
ymax=y, ymin=y) +
geom_hline(aes(yintercept=y), data = dummy) +
theme(axis.text.x = element_blank(),
axis.ticks.x=element_blank())

}

p <- qplot(1:10, 1:10) + theme_bw()
shift_axis(p, 5)

enter image description here

关于r - 将x或y轴与刻度标签一起移动到单个ggplot的中间(无构面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39071002/

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