在下面的 R代码中,我想知道at =
命令中axis()
应该是什么,以便“8”数字标记为 Y轴在Y轴上与 等距 相互出现?
注意: 我希望 Y轴仅列出labels
和points(1 , 3000)
下的数字正确地显示在情节中。
这是我的非工作R代码:
plot(1, 1, type = "n", xlim = c(0,1.5), ylim = c(1/3, 100000), ann=F, bty="n",
log="y",yaxt="n")
axis(side=2, at = c(1/3, 1, 3, 10, 30, 100, 1000, 100000),
labels = c("1/3", "1", "3", "10", "30", "100","1000", "100,000"),las=1)
abline(h=c(1/3, 1, 3, 10, 30, 100, 1000, 100000),lty=2,xpd=F)
points(1, 3000, cex=5, pch=20)
答案 0 :(得分:3)
如果您希望它们在对数刻度上均匀分布,请使用
at = exp(seq(log(1/3), log(100000), length.out = 8))
我会这样做:
plot(1, 1, type = "n", xlim = c(0,1.5), ylim = c(1/3, 100000), ann=F, bty="n",
log="y",yaxt="n")
y_vals = exp(seq(log(1/3), log(100000), length.out = 8))
axis(side=2, at = y_vals, labels = prettyNum(y_vals, digits = 3), las = 1)
abline(h = y_vals, lty = 2, xpd = F)
points(1, 3000, cex=5, pch=20)