gpt4 book ai didi

带有 ggplot 的 R 样式轴

转载 作者:行者123 更新时间:2023-12-04 02:03:08 25 4
gpt4 key购买 nike

使用 ggplot,是否有可能获得在原点不相交的“R 样式”x/y 轴,而是由两个断开的范围组成,如下例所示?

enter image description here

这里的原因主要是为了让 ggplot 图与纯 R 的图看起来一致。

最佳答案

尝试这个,

library(ggplot2)

d <- data.frame(x=1:10, y=rnorm(10))

base_breaks_x <- function(x){
b <- pretty(x)
d <- data.frame(y=-Inf, yend=-Inf, x=min(b), xend=max(b))
list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE),
scale_x_continuous(breaks=b))
}
base_breaks_y <- function(x){
b <- pretty(x)
d <- data.frame(x=-Inf, xend=-Inf, y=min(b), yend=max(b))
list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE),
scale_y_continuous(breaks=b))
}

ggplot(d, aes(x,y)) +
geom_point() +
theme_bw() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank()) +
base_breaks_x(d$x) +
base_breaks_y(d$y)

screenshot

编辑: related issue has since been discussed在 ggtheme 包中,并可能提供一个更清晰的解决方案(无需向breaks函数显式提供数据)。

关于带有 ggplot 的 R 样式轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10808761/

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