Я пытаюсь создать гистограмму, но столбцы имеют неравномерный размер. Как нам сделать их одинаковой ширины? Я посмотрел на рекомендуемые ответы, но ты не решил проблему. Кроме того, я не смог заставить работать одно из рекомендованных «исправлений».
Это мои данные ....
structure(list(Waterlogging = structure(c(2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("Non-waterlogged",
"Waterlogged"), class = "factor"), shoot = c(0.37, 0.43, 0.52,
0.33, 1.24, 1.12, 1.28, 1.28, 0.48, 0.95, 1.35, 0.95, 1.37, 1.4,
1.39, 1.34, 0.67, 0.8, 1.13, 0.32, 1.34, 1.53, 1.25, 1.4, 0.58,
0.98, 1.46, 0.69, 1.44, 1.83, 1.65, 1.71, 1, 1.17, 1.45, 0.98,
1.52, 1.75, 1.63, 1.7, 0.25, 0.24, 0.91, 1.17, 1.23, 1.22, 1.26,
0.89, 1.54, 1.01, 1.48, 0.93, 1.2, 1.55, 1.4, 1.19, 0.9, 1.29,
1.43, 1.31, 1.75, 1.92, 1.63, 1.64, 1.31, 1.43, 1.77, 1.28, 1.34,
1.54, 1.66, 1.88, 1.29, 1.05, 1.63, 1.36, 1.9, 2.18, 2.03, 1.68,
1.36, 1.16, 1.77, 1.35, 0.9, 1.49, 1.41, 1.57, 1.39, 1.22, 1.39,
1.37, 0.94, 1.83, 1.6, 0.24, 1.71, 1.67, 1.44, 1.9, 1.98, 2.04,
1.64, 1.71, 1.08, 1.89, 1.19, 1.58, 1.97, 1.97, 1.87, 2.21, 1.68,
2, 1.75, 1.24, 2.1, 2.25, 2.1, 2.24, 0.88, 0.72, 0.3, 0.58, 1.23,
1.32, 1.47, 1.54, 0.4, 0.47, 0.82, 1.2, 1.38, 1.09, 1.41, 0.23,
0.57, 0.84, 0.54, 1.29, 1.23, 1.14, 1.63, 1.61, 0.48, 0.95, 1.01,
0.8, 1.42, 1.12, 1.74, 1.89, 1.58, 1.6, 0.35, 1.38, 1.4, 1.58,
1.71, 1.64), herb.dmg.11.DEC = c(3L, 2L, 4L, 4L, 0L, 0L, 0L,
0L, 4L, 4L, 3L, 4L, 0L, 0L, 0L, 0L, 4L, 4L, 3L, 4L, 0L, 0L, 0L,
0L, 4L, 4L, 3L, 4L, 0L, 0L, 0L, 2L, 4L, 4L, 4L, 4L, 0L, 0L, 1L,
1L, 2L, 3L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 1L, 3L, 0L, 0L, 0L,
0L, 3L, 2L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 2L, 1L, 2L, 0L, 0L, 0L,
0L, 3L, 4L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 2L, 1L, 0L, 1L, 0L, 0L, 0L,
0L, 1L, 2L, 2L, 1L, 0L, 0L, 0L, 1L, 1L, 2L, 3L, 2L, 0L, 0L, 2L,
1L, 1L, 1L, 3L, 2L, 0L, 0L, 0L, 0L, 4L, 4L, 2L, 3L, 0L, 0L, 0L,
0L, 3L, 4L, 4L, 3L, 0L, 0L, 1L, 1L, 4L, 3L, 3L, 4L, 0L, 0L, 1L,
2L, 3L, 3L, 4L, 4L, 0L, 0L, 1L, 1L)), row.names = c(NA, 160L), class = "data.frame")
и вот мой код для сюжета .. ..
library(Rmisc) library(ggplot2)
tg5 <- summarySE(q, measurevar="shoot", groupvars=c("herb.dmg.11.DEC" ,"Waterlogging"))
ggplot(tg5, aes( x = as.factor(herb.dmg.11.DEC), y = shoot, fill = Waterlogging))+
theme_bw()+geom_bar(stat = "identity", width = .6, position = "dodge",colour="black")+
geom_errorbar((aes(ymin = shoot-se, ymax = shoot+se)), size = 0.3,
width = 0.4, position = position_dodge(.6))
Вот начальный график ....
Неровные бары
Вот моя попытка решить проблему .. ....
ggplot(tg5, aes( x = as.factor(herb.dmg.11.DEC), y = shoot, fill = Waterlogging))+theme_bw()+
geom_bar(stat = "identity", position = position_dodge2(preserve = "single"),colour="black")+
geom_errorbar((aes(ymin = shoot-se, ymax = shoot+se,width=0.4)),
position = position_dodge2(preserve = "single"))
попытка исправить
, но, как вы можете видеть в предпринятом исправлении, полосы ошибок не располагаются равномерно, а полосы для 3 и 4 не находятся в симметричном положении с другими столбцами ....
Был один ответ, который я не мог применить к своим данным, который изменяет фрейм данных ....
dat <- data.frame(a=rep(LETTERS[1:3],3),
b=rep(letters[1:3],each=3),
v=1:9)[-2,]
ggplot(dat, aes(x=a, y=v, colour=b)) +
geom_bar(aes(fill=b), stat="identity", position="dodge")
dat.all <- rbind(dat, cbind(expand.grid(a=levels(dat$a), b=levels(dat$b)), v=NA))
ggplot(dat.all, aes(x=a, y=v, colour=b)) +geom_bar(aes(fill=b), stat="identity", position="dodge")
Может кто-нибудь предложить какую-нибудь помощь в применении этого окончательного решения или любого другого?