我是新用户,无法在条形图中绘制一些数据。提前抱歉,如果这很容易做到,我就是无法理解。 我有六组数据:1号,5号和10号汽车#1的3个数据集,1,5和10年的汽车#2的3个数据集,每个年龄段的每辆汽车的测量值包括1.计算汽车外部的凹痕总数和2.)去除油漆的凹痕数量。我想制作一个带有6个条形的箱线图,对应于每辆车及其各自的年龄,其中柱高是除去油漆的凹痕总数,带有标准偏差条。 这是我到目前为止所尝试的内容(仅包括2个数据集):
car1yr1 = c(rep(0, 101), rep(1, 9)) #car has 9 dents that remove paint
car1yr5 = c(rep(0, 131), rep(1, 19)) #car has 19 dents that remove paint
sd1 = sd(car1yr1)
sd2 = sd(car1yr5)
stdv = c(sd1, sd2)
car1yr1 = car1yr1[1:150]
dentsCar1 = data.frame("Car1Yr1" = car1yr1, "Car1Yr5" = car1yr5)
barplot(as.matrix(dentsCar1, ylim = c(0, 50), beside = TRUE))
我找到了一个错误栏的示例:arrows(bar, x, bar, x+ -(stdv), length = 0.15, angle = 90)
,但我无法使用我的数字。此外,在此示例中,y轴停止在15,但是条形Car1Yr5一直持续到19.如何绘制y轴到20或30?
再次,我是R的新人,任何帮助将不胜感激。我一直试图在我自己的关闭和解决这个问题上解决这个问题大约2个星期。感谢。
答案 0 :(得分:0)
我对你的数据感到有点困惑......我假设你的例子中汽车1有101个没有去除油漆的凹痕而9个没有去掉油漆,而车2有131个没有去除,19个没有。
现在计算凹痕数的标准偏差对我来说没有多大意义......你正在绘制计数数据,所以你不应该有任何标准偏差,除非你有许多相同型号的汽车和你想看看汽车之间的差异。
最好的办法是通过以下方式计算去除油漆的凹痕百分比:
car1yr1 = c(rep(0, 101), rep(1, 9)) #car has 9 dents that remove paint
car1yr5 = c(rep(0, 131), rep(1, 19)) #car has 19 dents that remove paint
# The total number of observations is the total number of dents
total.dents.1 <- length(car1yr1)
total.dents.5 <- length(car1yr5)
# The dents that remove paint are marked as 1, the others with 0,
# so we can just sum all of the data to get the number of paint-removing dents
dents.paint.1 <- sum(car1yr1)
dents.paint.5 <- sum(car1yr5)
# Alternatively you can use
# dents.paint.1 <- length(which(car1yr1==1))
# Calculate the %
dents.paint.perc.1 <- dents.paint.1/total.dents.1
dents.paint.perc.5 <- dents.paint.1/total.dents.5
df <- data.frame(dents.paint.perc.1, dents.paint.perc.5)
# Plot the data.
# ylim specifies the limits of the y axis
# ylab defines the axis title.
# las=1 puts the labels on the y axis horizontally
# names defines the labels on the x axis
barplot(as.matrix(df)*100, ylim=c(0,20),
ylab="% dents removing paint", las=1,
names=c("Car 1 year 1", "Car 1 year 5"))
通常,将所有数据放在一个列表中会更好,这样您就可以使用*apply
函数族对所有数据集执行重复操作。这将为您提供更清晰,更易于管理的代码。此外,如果您添加更多数据,它会自动将其添加到绘图中。