ho due grafici e sto cercando di sovrapporre uno sopra l'altro:Sovrapposizione due grafici che utilizzano ggplot2 in R
Un esempio della data frame "ge" assomiglia a questo. In realtà ci sono 10 geni con 200 campioni ciascuno, così ci sono 2000 righe e 3 colonne:
Exp Gene Sample
903.0 1 1
1060.0 1 2
786.0 1 3
736.0 1 4
649.0 2 1
657.0 2 2
733.5 2 3
774.0 2 4
Un esempio della struttura di dati "medio" simile a questo. Questa è una media dei punti dati per ciascun gene su tutti i campioni. In realtà questo grafico ha 10 geni, quindi la matrice è 4COL X 10 righe:
mean Gene sd se
684.2034 1 102.7142 7.191435
723.2892 2 100.6102 7.044122
Il primo grafico Grafici una linea dell'espressione media per ogni gene insieme con la deviazione standard per ciascun punto di dati.
Il secondo grafico rappresenta l'espressione genica sotto forma di una linea per ciascun campione su tutti i geni.
linegraphs <- ggplot(ge, aes(x=Gene, y=Expression, group=Samples, colour="#000099")) + geom_line() + scale_x_discrete(limits=flevels.tge)
Vorrei sovrapporre avggraph in cima linegraphs. C'è un modo per fare questo? Ho provato l'algoritmo + linegraphs ma sto ricevendo un errore. Penso che questo sia dovuto al fatto che i grafici sono generati da due diversi frame di dati.
Devo anche sottolineare che gli assi di entrambi i grafici sono gli stessi. Entrambi i grafici hanno i geni sull'asse X e l'espressione genica sull'asse Y.
Qualsiasi aiuto sarebbe molto apprezzato!
Grazie a @Sven. Questo funziona, tuttavia quando lo faccio la linea AVG (in nero) è dietro le linee rosa. E poiché ci sono così tante linee rosa nei miei dati, non puoi vedere quello nero. Qualche suggerimento su come girarlo? – Sheila
@ShilaP Basta cambiare l'ordine delle geome: 'ggplot() + geom_line (data = ge, aes (x = gene, y = exp, gruppo = campione, colore =" # 000099 "), show_guide = FALSE) + geom_line (data = avg, aes (x = Gene, y = mean)) + geom_errorbar (data = avg, aes (x = Gene, ymin = mean-sd, ymax = mean + sd), width = .1) + geom_point (data = avg, aes (x = Gene, y = mean)) ' –
Trovato! Sì, ho pensato che sarebbe stato necessario capovolgere il codice per geom_line() in qualche modo, ma non riuscivo a capirlo esattamente. Grazie per l'aiuto! – Sheila