【问题标题】:R Barplot: Y-axis cut off at the top?R Barplot:Y轴在顶部被切断?
【发布时间】:2019-04-14 23:41:51
【问题描述】:

我正在尝试使用 R 来绘制条形图。我绘制的值范围从 0 到 5.0,但是是十进制值(例如 4.87),所以我不想只使用默认的 Y 轴,因为它只会以 1 为增量上升。

我创建了一个自定义 Y 轴,它可以工作,但如果我将最大值设置为大于 4.5 左右,它会切断轴顶部的刻度线。这看起来很不整洁,所以我想要一种方法来确保这个刻度线总是出现,但我不想缩短我的轴,因为这样做看起来很愚蠢。

我的R代码如下:

# Bar plot of mean SUS question scores
barplot(meanSUSQuestions$Mean,
        main="Mean SUS Question Scores",
        cex.main="0.8",
        cex.axis="0.8",
        cex.lab="0.8",
        #names=c("q1", "q2", "q3","q4","q5","q6","q7","q8","q9","q10"),
        names=c(1:10),
        yaxt="n",
        col="red")
axis(2, cex.axis="0.8", at=seq(0, 5, 0.5)) # Create custom Y axis
mtext(text="Mean Score", side=2, line=2, cex=0.8)
mtext(text="Question", side=1, line=2, cex=0.8)

生成的条形图如下所示:

从图片中可以看出,顶部的刻度线不见了。

我怎样才能让这个顶部标记出现?

【问题讨论】:

    标签: r bar-chart


    【解决方案1】:

    barplot根据数据生成图片高度。手动 y 轴的范围远大于绘图区域,因此被截断。

    在您的特定情况下解决问题的最简单方法是将yaxp = c(0, 5, 11) 添加到barplot 而不是yaxt = "n"axis

    一个独立的例子:

    # Bad
    x <- 1:5
    barplot(x, yaxt = "n") #, add = TRUE)
    axis(2, at = seq(0, 6, 2)) # Create custom Y axis
    
    # Good
    barplot(x, yaxp = c(0, 6, 2))
    

    【讨论】:

    • 这在我使用以下内容时有效:yaxp = c(0, 5, 20),
    猜你喜欢
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多