R 如何在轴上显示更多的十进制数字?
代码R 如何在轴上显示更多的十进制数字?,r,plot,R,Plot,代码 a <- 10^-7 f <- function(x) 1+a*cos(x) plot(f, 0, 2*pi) a我找到了答案,您需要在绘图中添加更多小数 value = function(p){c(min(p$y), mean(c(median(p$y),min(p$y))), median(p$y), mean(c(median(p$y),max(p$y))),
a <- 10^-7
f <- function(x) 1+a*cos(x)
plot(f, 0, 2*pi)
a我找到了答案,您需要在绘图中添加更多小数
value = function(p){c(min(p$y),
mean(c(median(p$y),min(p$y))),
median(p$y),
mean(c(median(p$y),max(p$y))),
max(p$y))}
par(mar = c(5,5,4,2), mfrow = c(1,2))
options(digits=15, scipen = 999)
a <- 10^-7
f <- function(x) as.double(1+a*cos(x))
p1 = plot(f, 0, 2*pi, cex.axis = 0.7, las = 1, ylab = "", yaxt = "n", main = "a=10^-7")
axis(2, at = value(p1),labels = sprintf("%.8f", value(p1)), cex.axis = .7, las = 1)
a <- 10^-8
p2=plot(f, 0, 2*pi, cex.axis = 0.7, las = 1, ylab = "", yaxt = "n", main = "a=10^-8")
axis(2, at = value(p2),labels = sprintf("%.8f", value(p2)), cex.axis = .7, las = 1)
value=function(p){c(min(p$y),
平均值(c(中位数(p$y),最小值(p$y)),
中位数(p$y),
平均值(c(中位数(p$y),最大值(p$y)),
最大值(p$y))}
par(mar=c(5,5,4,2),mfrow=c(1,2))
选项(数字=15,scipen=999)
a您可以使用formatC
和pretty
:
a <- 1e-10
plot(f, 0, 2*pi, yaxt="n") # no default y axis
p <- pretty(par("usr")[3:4]) # find nice breaks at actual y range
l <- formatC(p, format="f", digits=12) # format w/12 digits
axis(2, at=p, labels=l)
a这些“较小的值”是什么?我无法复制您的示例,您希望这些y轴标记是什么样子的axTicks(2)
给了我[1]0.99999991.00000001.00000001.00000001.00000001.00000001.00000001
,这不是非常棒的图形轴刻度。@PKumar我使用a=10^-8
得到第二个绘图。我是否可以建议您也将轴刻度的数量限制为精确且唯一的值?例如,在我的评论中,pretty
提出了两个相同的值,您需要提高警惕以防止。。。否则,哪一个是正确的?pretty
似乎工作得很好,直到达到数字精度,您只需将其格式化为足够大的数字。