#r #bar-chart
#r #гистограмма
Вопрос:
На базовом столбчатом графике я хочу добавить текст в нужном месте, но мой текст перекрывается со стандартной полосой ошибок. Вот мой код и выходные данные. Спасибо.
d<-data.frame(Proband=c(1400,1500),
Sibling=c( 1700,1800),
Proband2=c( 1200, 1250),
Sibling2=c( 1300, 1500))
d <- do.call(rbind, d)
colnames(d) <- c("A","B")
Se<-data.frame(Proband=c( 100,450 ),
Sibling=c( 170, 180 ),
Proband2=c(120,125 ),
Sibling2=c(130,150 ))
Se <- do.call(rbind, Se)
colnames(Se) <- c("A","B"))
freq<- c(21,26,32,56,45,66,78,88)
mycolors2<-c(paste0("royalblue", c(4:3)), c("steelblue4", "steelblue3"))
barCenters<-barplot(d, beside = TRUE, ylim=c(0,5000), legend.text = rownames(d),
args.legend = list(x = "topleft", bty="n"),
col=mycolors2, xlab="[![enter image description here][1]][1]Size (kb)",
ylab="Average ")
arrows(barCenters, d - Se * 2, barCenters,
d Se * 2, lwd = 1.5, angle = 90,
code = 3, length = 0.05)
text(barCenters, d Se * 2 , freq ,cex=1,srt = 90)
Комментарии:
1. используйте
text(..., adj = -0.5)
Ответ №1:
y
Значение, которое вы устанавливаете, text()
очень мало по сравнению с диапазоном, отображаемым на оси. Просто увеличьте множитель на Se
, и надписи появятся над полосами ошибок.
text(barCenters, d Se * 5 , freq ,cex=1,srt = 90)
Примечание: Вы можете настроить формулу интервала для ваших меток, поскольку в настоящее время она зависит от величины ваших стандартных ошибок. Это означает, что столбцы с большими ошибками будут размещать метки выше на графике.
Комментарии:
1. было бы лучше добавить вместо умножения
diff(par('usr')[3:4]) / 20
Ответ №2:
Поскольку y=d Se*2
это высота ваших верхних столбцов ошибок, вы можете добавить к нему небольшое расширение. Например. добавление 300
к x
выглядит красиво. Вы также можете добавить аргумент adj=-.5
к этому.
text(barCenters, d Se*2 300, freq, cex=1, srt=90)
Однако, вероятно, цифры несколько вводят в заблуждение в этой позиции и могут быть перепутаны только с этими ошибками. Я предлагаю разместить количество обращений (?) Непосредственно в столбцах.
text(barCenters, 350, freq, cex=.9, col="white")
Вы также можете рассмотреть возможность объяснения чисел в описании или ?legend
.