确定轴()R内的'at'
在下面的R代码中,我想知道确定轴()R内的'at',r,plot,R,Plot,在下面的R代码中,我想知道at=在axis()命令中应该是什么,使得Y轴上标记为的“8”数字在Y轴上显示为相等的距离 注意:我希望Y轴只包含标签下列出的数字,并且点(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, 1
at=
在axis()
命令中应该是什么,使得Y轴上标记为的“8”数字在Y轴上显示为相等的距离
注意:我希望Y轴只包含标签下列出的数字
,并且点(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)
如果希望它们在对数刻度上均匀分布,则使用
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)
谢谢,但是请看,
abline()
s不匹配,而且points()
显示不正确?(请使用您建议的更改运行整个代码)您必须对abline
和at
使用相同的值。当然,如果只更改一个,则它们将不匹配。@parvinkarimi,您也可以使用axis(2,at=exp(seq(log(1/3),log(100000),length.out=8)),tck=1,labels=NA,lty=2)代替abline
gridlines@d.b,谢谢,我希望Y轴上的标签正好是labels=c(“1/3”、“1”、“3”、“10”、“30”,“100”、“1000”、“100000”)
?但是点(1,3000)
没有正确地显示在绘图的正确位置上?谢谢,但是请看,abline()
不匹配,而且点()
也没有正确显示?(请使用建议的更改运行整个代码)您必须对abline
和at
使用相同的值。当然,如果您只更改一个值,那么它们将不匹配。@parvinkarimi,您可以使用轴(2,at=exp(seq(log(1/3),log(100000),length.out=8)),tck=1,labels=NA,lty=2)
而不是a也用于gridlines@d.b,谢谢,我希望Y轴上的标签正好是labels=c(“1/3”、“1”、“3”、“10”、“30”、“100”、“1000”、“100000”)
?但是点(1,3000)
没有正确显示在绘图的正确位置?