我希望数据标签出现在每个小节的末尾,在标签和小节的末尾之间留一个空格。我希望标签以百分比表示。请注意,该图是使用原始数字而非百分比值构建的。我希望该问题的解决方案在R中。对类似的先前问题的解答对我而言无效。
table(cont$cont9) # 1=0, 2=0,3=2, 4=2, 5=21
#1=0%, 2=0%,3=8%, 4=8%, 5=84%
par(mar=c(0, 5, 0, 2.1))
H <- c(0, 0, 2, 2, 21) # Create the data for the chart, cont3.#
M <- c("Very Low", "Low", "Medium", "High", "Very High")
barplot(H, col =c("slategray1", "slategray1","slategray1",
"slategray1", "steelblue3"),
horiz = TRUE,
family="Arial", border = NA, names.arg = M,
xlim = range(0,100), ylim = range(0, 0.08),
axes = FALSE, width = 0.01, las=1, xaxt='n')
我想在每个小节的末尾添加百分比数据标签。在基数R中有解决方案。
答案 0 :(得分:1)
要执行问题所要求的操作,请保留返回值barplot
并将其用作标签的y
坐标。返回值为:
一个数字矢量(或矩阵,当旁边为TRUE时),例如mp,给出 绘制的所有条形中点的坐标,对于添加到 图。
x
坐标是绘制的值,其位置已调整,pos = 4
。
在下面的代码中,我还将保持对par
的调用返回值。这是一个通用的好习惯。完成绘制后,请恢复默认设置。
op <- par(mar=c(0, 5, 0, 2.1))
bp <- barplot(H, col =c("slategray1", "slategray1","slategray1",
"slategray1", "steelblue3"),
horiz = TRUE,
family = "Arial", border = NA, names.arg = M,
xlim = range(0,100), ylim = range(0, 0.08),
axes = FALSE, width = 0.01, las=1, xaxt='n')
text(H, bp, labels = H/sum(H), pos = 4)
par(op)
注意:
虽然我没有更改,但是发现
xlim = c(0, 30), ylim = c(0, 0.08),
更自然。
c
,而不是range
。xlim
的值与range(H)
一致。