R: нарисуйте линию на том же графике boxplot

#r #ggplot2

#r #ggplot2

Вопрос:

Я пытаюсь отобразить линию поверх графика boxplot с x, полученным из factor.

Этот код работает хорошо:

 x <- c(91,92,93,125,123,140)
y <- c(200,260,220,300,350,360)
d1 <- data.frame(x=x,y=y)
d1$f1 = factor(round(d1$x/10))
qplot(f1,y,data=d1,geom="boxplot")
d2<-data.frame(x2=c(90,140),y2=c(210,320))
qplot(x2,y2,data=d2,geom="line")
  

Но когда я пытаюсь добавить линию к графику…

 qplot(f1,y,data=d1,geom="boxplot")   geom_line(data = d2, aes(x = x2, y=y2))
  

Чтобы увидеть мои результаты: http://jeb-files.s3.amazonaws.com/Clipboard01.jpg

Как мне выровнять мою линию с моим boxplot?

Спасибо!

Комментарии:

1. Это «нормальное» поведение для ggplot, основанное на том, что вы ему передали. Почему вы преобразовали x в коэффициент? Ось x в качестве множителя теперь представлена внутренне в виде целых значений 1-3. Таким образом, построение линии со значениями x от 90 до 140 не имеет особого смысла. Если вы измените x2 = c(1,3) , то компоненты графика будут «выровнены», хотя я скептически отношусь к значению любого из них. На какой вопрос в целом вы пытаетесь ответить здесь?

2. Я хочу сгруппировать значение x, поэтому я использую коэффициент!! Есть ли другой способ? Общая картина заключается в том, что у меня есть данные, которые я хочу отобразить в виде boxplot и наложить на них кривую уравнения.

Ответ №1:

A boxplot требует, чтобы значения x были факторами, тогда как a geom_line требует, чтобы значения x были числовыми. Вы можете получить то, что хотите, изменив geom_line вызов таким образом, чтобы x значение определялось как числовая версия упорядоченного множителя, полученного из round(x2/10) :

 qplot( f1,y,data=d1,geom="boxplot")  
 geom_line(data = d2, aes(x = as.numeric(ordered(round(x2/10))), y=y2))
  

введите описание изображения здесь

Комментарии:

1. Спасибо за вашу помощь! Это лучше, чем то, что я делал до сих пор, но возможно ли изменить ось x для прямоугольного графика, а не для линии? Потому что с моими реальными данными у меня есть это: ссылка . Красная линия обычно является кривой.