确定轴()R中的“at”

时间:2017-02-09 23:51:14

标签: r plot

在下面的 R代码中,我想知道at =命令中axis()应该是什么,以便“8”数字标记为 Y轴在Y轴上与 等距 相互出现?

注意: 我希望 Y轴仅列出labelspoints(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)

1 个答案:

答案 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)

enter image description here