R条形图:Y轴在顶部切除?

时间:2019-04-14 15:08:03

标签: r bar-chart

我正在尝试使用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)

由此产生的条形图如下:

enter image description here

从图片中可以看到,顶部的勾号已丢失。

如何显示此顶部刻度线?

1 个答案:

答案 0 :(得分:0)

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))