ggplot2 график оси x и метки строк

#r #ggplot2 #axis-labels

#r #ggplot2 #ось-метки

Вопрос:

Я использую эти данные https://www.dropbox.com/s/aqt7bdhzlwdsxl2/summary_exp1.csv

И следующий код:

 pd <- position_dodge(.1)
ggplot(data=summary.200.exp1, aes(x=Time, y=Length, colour=Genotype, group=Genotype))   
    geom_errorbar(aes(ymin=Length - se, ymax=Length   se), colour="black", width=.1,         position=pd)  
  geom_line(position=pd)  
  geom_point(aes(shape=Genotype),position=pd, size=3)  
  ylab("leaf segment width (mm)")  
  xlab("Time")  
   theme(axis.title = element_text(size=14,face="bold"), 
        axis.text = element_text(size=14),
        strip.text.y = element_text(size=14))
 

Мне нужно внести следующие изменения:

  1. Отрегулируйте ограничения по оси x, чтобы исключить пробелы между осью y и данными, отображаемыми на time0 графике, а затем между Time22 ними и краем графика. Я просмотрел документацию и попробовал это: scale_x_discrete(limits=c("0","22")) , но это не работает.
  2. Измените маркировку так, чтобы каждая строка на графике была помечена отдельным цветом, «Генотип» и легенда были удалены. Для этого я пробовал различные варианты, с geom_text(aes(colour=Genotype)) которыми я также не могу работать.

Я был бы признателен за любую помощь в этом. Большое спасибо

Ответ №1:

  1. Вы можете устранить пробел между графиком и осью, добавив expand = c(0, 0) к параметру масштаб: scale_x_discrete(expand = c(0, 0))
  2. Вы можете исключить легенду, добавив show_guide=FALSE , например geom_line , часть вашего кода.

Редактировать:

Я думаю, что вы пытаетесь отобразить многое на одном графике. Например, полосы ошибок сильно перекрывают друг друга, чтобы получить читаемый график. Использование фасетов может быть хорошей идеей в этом случае (на мой взгляд). следующий код (в котором фрейм данных назван как dat ):

 ggplot(data=dat, aes(x=Time, y=Length, colour=Genotype))   
  geom_line()  
  geom_point(aes(shape=Genotype), size=3)  
  scale_shape_manual(values=c(19,17,15,8,13,6,12,4))  
  geom_errorbar(aes(ymin=Length-se, ymax=Length se, colour=Genotype), width=.2)  
  guides(colour=FALSE, shape=FALSE)  
  facet_wrap(~Genotype, ncol=4)
 

результаты в этом графике:
введите описание изображения здесь

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

1. Спасибо Jaap, очень признателен. Есть ли у вас какая-либо помощь в получении маркировки (я предполагаю, что необходим geom_text, но график исчезает, когда я использую код, который я объяснил выше в # 2). Кроме того, когда я использую show_guide = FALSE, как вы предложили, я получаю исчезновение двух символов генотипа (CD и RIL4), но текст остается в легенде, а другие символы остаются в легенде.

2. Причина исчезновения символов заключается в том, что shape шкала может обрабатывать только 6 дискретных значений. Если у вас их больше, вам нужно указать их вручную. Более того, я думаю, что в вашем случае разумно использовать фасеты. Смотрите мой обновленный ответ.