Как я могу переместить геом_линию за точечной диаграммой?

#r #ggplot2

Вопрос:

Мой фрейм данных содержит 3 столбца (температура плюс две оценки одной и той же переменной с использованием разных методов, например, длины). Я хочу построить один в виде кривой, а другой в виде разброса, что я могу сделать. Но линия находится перед разбросом и выглядит уродливо. Я попытался переместить строку в первую очередь в ggplot, но это не помогает.

ИЗМЕНИТЬ: пример моих данных с использованием случайных чисел. df = data.frame(temp = c(0.1,0.5,0.6,0.9,1.6),var1 = c(1,2,3,4,5), var2 = c(5,4,3,2,1))

ПРАВКА: более подробно. Var1 и var2-это разные оценки одной и той же переменной, рассчитанные с использованием разных методов, например, высота. И я хочу визуализировать их в зависимости от температуры, используя var1 в виде линии, а var2 в виде точек. Но мне нужно, чтобы линия находилась за точками, которые, по моему мнению, выглядят лучше.

Ниже приведено то, что я пробовал, разница заключается в порядке разброса/строки, переданном ggplot2. Но линия не заходит за точки.

 p = ggscatter(df,x="temp",y="var2")   
  geom_line(data = df, aes(x = temp, y = var1), color = "blue", size = 2.5)  
  xlab('temp')  
  ylab('length')
p
 

Новая попытка ниже:

 p = ggline(df,x="temp",y="var1", size = 2.5)   
  geom_point(df, aes(x = temp, y = var2), color = "blue")  
  xlab('temp')  
  ylab('length')
p
 

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

1. Это невозможно воспроизвести, и мне непонятно, к какой линии или сюжету вы имеете в виду. Можете ли вы отредактировать свой вопрос, чтобы включить соответствующую информацию?

2. Пожалуйста, поделитесь данными, с которыми вы работаете (т. Е. df ) dput(df) , чтобы мы могли воспроизвести ваши проблемы.

3. Возможно, вам было бы полезно создать свой сюжет с нуля с ggplot помощью первого вызова, вместо использования ggscatter или ggline . — Также другие авторы правы, с этим трудно работать, мы не можем читать ваши мысли. но, прочитав до конца, вы, вероятно, захотите этого: ggplot(df, aes(x = temp)) geom_line(aes(y = var1)) geom_point(aes(y = var2))

4. Спасибо, я просто отредактировал его, чтобы предоставить фиктивные данные