R在最大和最小位置绘制y轴记号条

R在最大和最小位置绘制y轴记号条,r,plot,R,Plot,我需要绘制相同两个变量的多个图,但y值的范围在不同的图中不同。为了简化y轴,我希望每个绘图仅在y轴上的最小和最大范围(绘图的最小/最大值,而不是数据)显示记号标记和标签 我使用过usr和yaxp参数,但运气不好。下面是一个玩具示例: x<-1:10 y<-3:12 plot(x,y,yaxp=c(par("usr")[3],par("usr")[4],1)) x在实际进行绘图之前,usr值将不适用于您的数据。获取正确值的一种方法是首先绘制,获取值,然后使用这些值再次绘制以放置记号:

我需要绘制相同两个变量的多个图,但y值的范围在不同的图中不同。为了简化y轴,我希望每个绘图仅在y轴上的最小和最大范围(绘图的最小/最大值,而不是数据)显示记号标记和标签

我使用过usr和yaxp参数,但运气不好。下面是一个玩具示例:

x<-1:10
y<-3:12
plot(x,y,yaxp=c(par("usr")[3],par("usr")[4],1))

x在实际进行绘图之前,
usr
值将不适用于您的数据。获取正确值的一种方法是首先绘制,获取值,然后使用这些值再次绘制以放置记号:

plot(x, y)

min_tick <- par("usr")[3]
max_tick <- par("usr")[4]

plot(x, y, yaxt = "n") 
axis(side = 2, at = c(min_tick, max_tick))
绘图(x,y)

min_tick正如这里所示,
ggplot2
等价物用于设置
连续缩放的
断点

library(ggplot2)

ggplot(data.frame(x, y), aes(x, y)) + 
    geom_point() + 
    scale_y_continuous(breaks = c(min(y), max(y)))

R plotting通常会在最小值和最大值的两侧稍微扩展绘图区域(我认为是1.04的系数,但您的示例表明是1.03),以允许完整打印点。您的解决方案实际上并没有满足OP的要求,即记号位于值的最小值和最大值,而是位于绘图区域的最小值和最大值。@42 OP说,“我希望每个绘图只在y轴的最小值和最大值范围(绘图的最小值/最大值,而不是数据)显示记号标记和标签。”我是否误解了你的评论?没有,但我们似乎对所要求的内容没有共同的理解。我没想到OP知道绘图范围比数据范围大。超过最大值12的增量:
12*0.03[1]0.36
@42我的解释是它是1.04*数据范围:
.04*(12-3)=0.36
library(ggplot2)

ggplot(data.frame(x, y), aes(x, y)) + 
    geom_point() + 
    scale_y_continuous(breaks = c(min(y), max(y)))