R 条形图中的点刻度

Points Scale in R barplot

我在多轴条形图中遇到了问题。我在同一张图中有一个带有条形和点的 X、Y 轴。关键是我必须以不同的比例显示它们

虽然我可以正确显示(条形和点),但当我尝试在左右轴上设置不同的比例时,问题就来了。我不知道如何更改附加轴刻度,以及如何将红点绑定到右轴,将条绑定到左轴。

这是我的代码和我得到的:

labels <- value
mp <- barplot(height = churn, main = title, ylab = "% churn", space = 0, ylim = c(0,5))
text(mp, par("usr")[3], labels = labels, srt = 45, adj = c(1.1,1.1), xpd = TRUE, cex=.9)

# Population dots
points(popul, col="red", bg="red", pch=21, cex=1.5)

# Churn Mean
media <- mean(churn)
abline(h=media, col = "black", lty=2)

# Population scale
axis(side = 4, col= "red")

ylim= c(0,50)

ylim= c(0,5)

我想要的是在 ylim=c(0,5) 处设置左(灰色)轴,并且条形图绑定到该轴。右(红色)轴位于 ylim=c(0,50) ,点绑定到该轴...... 目标是在同一图表中用不同的轴表示条形和点。

希望我解释的很成功。 感谢您的协助!

这是一个玩具示例。唯一的 "trick" 是在创建条形图时存储条形中心的 x 位置和 x 轴的限制,以便您可以覆盖具有相同 x 轴的图并将您的点添加到条形图的中心酒吧。 plot.window 调用中的 xaxs = "i" 指示使用给定的确切值,而不是按常量扩展(默认行为)。

set.seed(1234)
dat1 <- sample(10, 5)
dat2 <- sample(50, 5)
par(mar = c(2, 4, 2, 4))
cntrs <- barplot(dat1)
xlim0 <- par()$usr[1:2]
par(new = TRUE)
plot.new()
plot.window(xlim = xlim0, ylim = c(0, 50), xaxs = "i")
points(dat2 ~ cntrs, col = "darkred")
axis(side = 4, col = "darkred")