ho dati contenenti dati numerici a coppie per 10 campioni:Usa facet_grid per il valore a due a due (heatmap) visualizzazione in ggplot2
data = dget(url("https://git.io/vCTpG"))
I dati si presenta così:
sampleB sampleA ol labelA labelB facetA facetB
2409 2409 100 2409|B 2409|B B B
2409 2413 0 2413|A 2409|B A B
2409 2414 0 2414|A 2409|B A B
2409 2417 0 2417|C 2409|B C B
2409 2411 0 2411|A 2409|B A B
2409 2418 0 2418|B 2409|B B B
2409 2416 0 2416|C 2409|B C B
2409 2412 4 2412|B 2409|B B B
2409 2415 0 2415|C 2409|B C B
2409 2410 19 2410|A 2409|B A B
... ... ... ... ... ... ...
voglio visualizzare la ol
valori in una mappa di calore:
library(ggplot2)
ggplot(data = data, mapping = aes(x=labelA, y=labelB)) +
geom_tile(mapping = aes(fill=ol)) +
scale_fill_gradient(low = "white", high = "black") +
theme(legend.position = "none") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Ora mi piacerebbe strutturare la mappa di calore 10 per 10 per una categoria associata a ciascun campione, ovvero A,B
o C
in questo esempio. Tuttavia, se uso facet_grid ...
last_plot() + facet_grid(facetA~facetB)
... questo si traduce in un 30 da 30 piuttosto che in una mappa 10 da 10 di calore che si suddivide in 3 categorie (che mostra ancora solo 100 valori però). Ricordo di aver risolto questo problema utilizzando
last_plot() + facet_grid(facetA~facetB, scales = "free", space = "free")
in passato, tuttavia, non riesco più a riprodurlo. La soluzione desiderata sarebbe simile a questa (questo è stato rivestiti, non ggplot generata):
Vale a dire un riordinato, raggruppato 10 per 10 matrice.
Potrebbe elaborare ciò che si Ti aspetti di vedere? Sembra abbastanza corretto: la tua immagine totale è una somma di tutte le immagini sfaccettate. Cosa ti aspetti di vedere ad es. per '2409 | B' su una faccetta A vs facet C? Naturalmente, è vuoto. – tonytonov
@tonytonov Ho aggiunto un'immagine creata manualmente per spiegare meglio il risultato desiderato – barbaz
interessante .. cambiando l'ordine delle faccette ti avvicini 'last_plot() + facet_grid (facetB ~ facetA, scale =" free ")' – user20650