Come tracciare Min e Max di due colonne per fila come dispersione
-
11-12-2019 - |
Domanda
Ho un dataFrame che sembra qualcosa di simile:
| id | length_bgn | length_end |
--------------------------------
| 1 | 209 | 215 |
| 2 | 324 | 125 |
| 3 | 167 | 156 |
| .. | ... | ... |
--------------------------------
.
Vorrei fare un dispersolo con il minimo della lunghezza (per riga) sull'asse x e il massimo per fila sull'asse y.Ho provato:
qplot(min(length_bgn, length_end), max(length_bgn, length_end), data=df)
.
Tuttavia questo traccia un singolo punto del minimo di entrambe le colonne contro il massimo di entrambe le colonne.Sto usando le funzioni sbagliate?O sarebbe meglio manipolare in qualche modo il dataframe?Si prega di scusare qualsiasi ingenuità, sono ancora abbastanza nuovo a r e ggplot2.
Qualsiasi aiuto sarebbe molto apprezzato.
Modifica: trama di esempio utilizzando il codice sopra:
Soluzione
EDIT
library("ggplot2")
df <- read.table(text = " id length_bgn length_end
1 209 215
2 324 125
3 167 156 ", header=TRUE)
df$x <- apply(df[,c(2,3)], 1, min)
df$y <- apply(df[,c(2,3)], 1, max)
qplot(x, y, data=df)
Altri suggerimenti
@gauden's solution is good (to do the processing before plotting), but if you really want ggplot
to do that work for you too, you can. [Using df
that @gauden provided.]
qplot(pmin(length_bgn, length_end), pmax(length_bgn, length_end), data=df)