О, мудрый: у меня вопрос об использовании geom_linerange(), я надеюсь, что это надежный пример, иллюстрирующий мою проблему.ggplot2- geom_linerange with stat_smooth
b=c(100,110,90,100,120,130,170,150,150,120,140,150,120,90,90,100,40,50,40,40,20,60,30)
test<-data.frame(a=c(2,2,2,4,4,4,4,6,6,6,6,6,6,8,8,8,10,10,10,10,10,10,10),
b=b,c=c(b-15))
testMelt <- melt(
test,
id = c("a"),
measured = c("b", "c")
)
p <- ggplot(
aes(
x = factor(a),
y = value,
fill= variable
),
data = testMelt) +
geom_boxplot() +
stat_smooth(aes(group=variable,x=factor(a),y=value,fill=factor(variable)),data=testMelt)
Мой фактический набор данных намного больше, а ящики очень податливы. Я думаю, что я хочу, чтобы geom_linerange() каким-то образом отображал диапазон данных в «b» и «c» при каждом значении «a».
Лучшее, что я придумал это:
p<- p+ geom_linerange(aes(as.factor(a),ymin=min(value),ymax=value,color=variable))
Я могу предположить, что «с» значения всегда равны или меньше, чем «Ъ», но если диапазон меньше, это «охватывает это вверх ". Могу ли я каким-то образом дрожать? Есть ли лучшее решение?
Благодарим за предложение - не полностью ответит на вопрос, но он может пригодиться позже! – Nan