【问题标题】:Y axis not showing values correctly R plotY 轴未正确显示值 R 图
【发布时间】:2017-02-02 01:13:30
【问题描述】:

我想知道在下面的图中修复 我的 Y 轴 是什么? Y 轴应该由七个值(.1、1、10、100、1000、10000、1000000)组成?但是它们在情节上没有正确显示?

这是我的 R 代码?

plot(1, 1, type = "n", xlim = c(0,1.5), ylim = c(.1, 100000), ann=F,bty="n",yaxt="n")

axis(side=2, at = 10^(-1:5),label=c(format(10^(-1:5),scientific=F) ))

【问题讨论】:

    标签: r plot


    【解决方案1】:

    我实际上看到您对上一个问题发表了评论,所以我也在那里添加了评论。是秤的问题。 0.1、1 和 10 都聚集在一起,因为只有空间可以显示第一个标签。这段代码会给我更多标签,但理想的方法是以对数比例进行:

    axis(side=2, at = 10^(-1:5),label=c(format(10^(-1:5),scientific=FALSE)),las=1)
    

    【讨论】:

    【解决方案2】:

    您需要使用log="y"参数将y轴指定为对数刻度:

    plot(1, 1, type = "n", xlim = c(0,1.5), ylim = c(.1, 100000), ann=F, bty="n", log="y", yaxt="n")
    axis(side=2, at = 10^(-1:5),label=c(format(10^(-1:5),scientific=F) ) )
    

    【讨论】:

    • 在axis() 中是否有办法选择性地控制位数。例如,我可以在当前 X 轴上有 2 位非整数 和 零位整数吗?
    • 我的意思是X轴从0到1.5?
    • 您可以在函数外部创建标签,例如:xnewlabels <- ifelse(x==floor(x), format(x, digits=0), format(x, digits=1)) 我不会根据演示风格推荐它,但它可以工作。
    【解决方案3】:

    axis 函数非常努力地不使用重叠标签,并且不重叠规则包括空白边距,因此您可以开始看到随着您减少 cex.axis 而适合的标签数量的差异:

    axis(side=2, cex.axis=0.7, at = 10^(-1:5),label=c(format(10^(-1:5),scientific=F) ))
    axis(side=2, cex.axis=0.6, at = 10^(-1:5),label=c(format(10^(-1:5),scientific=F) ))
    

    【讨论】:

    • 在axis() 中是否有办法选择性地控制位数。例如,我可以在当前 X 轴上为非整数设置 2 个数字,为整数设置 零位数?
    • 我可以想象这样的事情:sub("\\.00","", as.character( round( y , 2)
    • 是的。作为“标签”的参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    相关资源
    最近更新 更多