2015-12-08 32 views
-3

我跟着this教程使用barplot。但是,我很难将数字放在条上。我整整呆了一整天,没有多少运气。任何人都可以帮忙吗?r barplot:把数字放在吧台上

我已将.zip附加到数据,绘图脚本和我现在拥有的图表上。基本上,酒吧中间的数字(黑色)应该位于每个酒吧的顶部并具有相应的值。现在,我只在所有酒吧中获得了最高分(这是错误的)。提取ZIP并输入“Rscript plot-storage.R”。在提取的文件夹内执行脚本。

感谢,

Nodir

+2

把数字放在条形图上是很愚蠢的。这个情节的重点是什么,为什么不制作一个数字表呢?最好在问题本身中直接包含[可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。要求他人下载一个潜在危险的ZIP文件是不礼貌的。您应该简化数据和代码,尽可能使问题变得清晰。 – MrFlick

+1

可能的重复:http://stackoverflow.com/questions/12481430/how-to-display-the-frequency-at-the-top-of-each-factor-in-a-barplot-in-r/12483754# 12483754 – MrFlick

+0

感谢您对@MrFlick重复的指针,并道歉不提供可重复的示例。我通过查看您提供的重复问题来解决问题。我将以解决方案摘录为例。 –

回答

0

我通过观察标记为重复的URL解决了这个问题。感谢MrFlick!

我下面绘制条:

[...] 
data <- structure(list(vdb, vdc, vdd, vde), 
        .Names = c("4K", "16K", "32K", "64K"), 
        class = "data.frame", row.names = c(NA, 4L)) 
colours <- c("green", "orange", "blue", "red") 
barObj <- barplot(as.matrix(data), main=title, ylab = "IOPS (log scale)", 
        cex.lab = 1.2, cex.main = 1.4, 
        beside=TRUE, col=colours, log="y") 
legend("topright", c("B", "C", "D", "E"), cex=1.3, bty="n", fill=colours) 

添加以下两行把数字上的酒吧之上。

[...] 
data <- structure(list(vdb, vdc, vdd, vde), 
        .Names = c("4K", "16K", "32K", "64K"), 
        class = "data.frame", row.names = c(NA, 4L)) 
values = c(vdb, vdc, vdd, vde) # added line 
colours <- c("green", "orange", "blue", "red") 
barObj <- barplot(as.matrix(data), main=title, ylab = "IOPS (log scale)", 
        cex.lab = 1.2, cex.main = 1.4, 
        beside=TRUE, col=colours, log="y") 
text(x=barObj, y=values, label=values, cex=0.9, pos=3, col="black", xpd=TRUE) # added line 
legend("topright", c("B", "C", "D", "E"), cex=1.3, bty="n", fill=colours)