繁体   English   中英

在axis()R中确定“ at”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM