[英]Determining `at` within axis() R
在下面的R代码中 ,我想知道axis()
命令中的at =
应该如何使得Y轴上 标记的“ 8”数字在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)
如果希望它们在对数刻度上均匀分布,请使用
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.