Скажите, что у меня есть следующий фрейм данных:
line_df <- data.frame(x_ini = c(0.55,2.55,1.55,5.55,7.55),
x_end = c(1.45,3.45,2.45,6.45,8.45),
y = c(-0.5,-0.5,-1.5,-2.5,-2.5),
category = c("red","red","blue","green","green"))
Я хочу построить горизонтальный сегмент для каждой строки фрейма данных. Сегменты линий будут определены следующим образом: (x_ini[i],y[i])
и (x_end[i],y[i])
, а цвет сегментов: line_df$category
.
Я пробовал с geom_segment
, segments
, abline
и lines
но мне не удается правильно установить легенду и построить сегменты с помощью тех же инструкций, потому что у меня есть другие данные, которые я хочу включить в тот же график.
Есть предложения о том, как я могу это сделать? Рад изменить фрейм данных на другую, более подходящую структуру, но я хочу избежать вызова одной и той же инструкции несколько раз для каждого из сегментов.
Спасибо!
РЕДАКТИРОВАТЬ
Другие данные, которые я хочу включить, приведены ниже.
previous_df <- data.frame(letter=c("x","y","y","z","x","p"),number=c(9,3,2,1,5,7),labeldf=c(1,15,12,15,1,12))
ggplot(previous_df,aes(labeldf,number,fill=letter)) +
geom_bar(stat="identity",position='dodge')
Таким образом, проблема в том, что я не могу добавить еще один слой ggplot
к нему, и если я добавляю непосредственно geom_segment
(упомянутый в ответе Nova), я получаю ошибки относительно fill
вариант.