Я немного застрял на ggplot, пытаясь создать фигуру.
Итак, у меня есть фрейм данных, длина которого = 21685
Вот небольшой пример моих данных
x <- data.frame("Genes" = c("Gene_1","Gene_2","Gene_3","Gene_4","Gene_5",
"Gene_6","Gene_2","Gene_8","Gene_4","Gene_10"),
"Start" = c(1,1,50,400,400,500,700,700,2000,2000),
"End" = c(10,10,200,600,600,600,1000,1000,3000,3000),
"Log2_FC"=c(-1.2,-1.2,-0.7,-0.1,-0.1,0.3,1,1,1.5,1.5),
"TPM"=c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1))
(x - это только часть моего исходного кадра данных, который я назвал в честь df)
Итак, у меня много координат и для каждой координаты:
Связанный ген (одна и та же координата может иметь несколько генов, а разные координаты могут иметь ген, который уже связан с данной позицией)
Уникальное значение Log2 (FC) для координат
Уникальное значение TPM / на координату / на ген (которые представляют активность данного гена, связанную с этими координатами)
Я отсортировалданные "Log2_FC".
Итак, я пытаюсь построить данные по группе в 1000 единиц. Для этого я добавляю в свой фрейм данных еще один столбец, который
* 1029.*
Затем сделаю мою фигуру:
(fig1<-ggplot(df, aes(x=TPM_range_1000,y=TPM))+
geom_violin(scale = "width",adjust = .5,fill='#A4A4A4', color="darkred")+
geom_boxplot(width=0.1) + theme_minimal()+
stat_summary(fun.y=mean, geom="point",size=2,color="red",aes(shape="Mean")) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
guides(colour=guide_legend(order=1), shape=guide_legend(title=NULL, order=2)))
Я получил что-то вроде этого:
Итак, у меня есть несколько проблем ... Первая состоит в том, что все группы = 1000, кроме последней = 685. Как я могу просто изменить метку xпо длине данной группы.Потому что здесь последняя группа равна 685. Но для других данных она может отличаться.
Другое дело, как я могу объединить по одним и тем же координатам и сохранить разные TPM.Потому что на самом деле мой фрейм данных должен быть короче, но я не хочу терять информацию в столбце TPM, потому что мне нужно отобразить значения здесь.
Так что если кто-то может помочь мне хотя бы для одной из моих проблем, этобыло бы очень приятно.Спасибо, что прочитали это, это довольно сложно и не легко объяснить, но я старался изо всех сил:).
Best,