#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))
Мне нужно внести следующие изменения:
- Отрегулируйте ограничения по оси x, чтобы исключить пробелы между осью y и данными, отображаемыми на
time0
графике, а затем междуTime22
ними и краем графика. Я просмотрел документацию и попробовал это:scale_x_discrete(limits=c("0","22"))
, но это не работает. - Измените маркировку так, чтобы каждая строка на графике была помечена отдельным цветом, «Генотип» и легенда были удалены. Для этого я пробовал различные варианты, с
geom_text(aes(colour=Genotype))
которыми я также не могу работать.
Я был бы признателен за любую помощь в этом. Большое спасибо
Ответ №1:
- Вы можете устранить пробел между графиком и осью, добавив
expand = c(0, 0)
к параметру масштаб:scale_x_discrete(expand = c(0, 0))
- Вы можете исключить легенду, добавив
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 дискретных значений. Если у вас их больше, вам нужно указать их вручную. Более того, я думаю, что в вашем случае разумно использовать фасеты. Смотрите мой обновленный ответ.