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
似乎工作得很好,直到达到数字精度,您只需将其格式化为足够大的数字。