我正在尝试使用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)
由此产生的条形图如下:
从图片中可以看到,顶部的勾号已丢失。
如何显示此顶部刻度线?
答案 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))