Come si modifica gli assi nello strumento dell'albero filogenetico di Matlab?
-
12-11-2019 - |
Domanda
Voglio mostrare bei dendrogrammi per alcuni cluster agglomerativi che sto generando in Java. Scrivo i cluster su un file in formato Newick. Quindi, posso ottenere una bella immagine che è quasi quello che voglio.
tr = phytreeread('myfile.tree')
phytreetool(tr)
Sfortunatamente, l'asse X non è quello che voglio. Preferirei "invertire" l'asse, perché le iterazioni del clustering progrediscono da destra a sinistra, ad esempio firstName
e setFirstName
Ottieni il cluster nella prima iterazione. Qualcuno sa come posso farlo, o almeno spegnere l'etichettatura dell'asse X? (Qual è l'asse predefinito che cerca di dirmi comunque?)
Soluzione
Innanzitutto, dovrai ottenere l'accesso alla maniglia per gli assi in cui viene tracciato il dendrogramma. Se è l'unica figura aperta, è possibile utilizzare la funzione TROVA TUTTO così:
phyAxes = findall(0,'Type','axes');
Ora, quello che vuoi cambiare non è La direzione dell'asse X, poiché ciò invertirà anche il dendrogramma tracciato. In realtà vuoi cambiare solo il Etichette utilizzate per i segni di zecca dell'asse X. Se vuoi semplicemente spegnerli, puoi farlo:
set(phyAxes,'XTick',[]);
Ora, non sono sicuro di cosa sia destinato l'asse X. Nel tuo esempio, sembra che ogni punto di filiale sia posizionato a un valore intero lungo l'asse X a partire da 0 per il punto di filiale più a sinistra (la "radice", immagino). Il ramo più a destra contenente firstName
e setFirstName
è posizionato ad un valore di 21. Se si desidera modificare l'etichettatura dell'asse in modo che il ramo più destro sia a 0 e il ramo più a sinistra è a 21, è possibile modificare gli assi come segue:
set(phyAxes,'XTick',0:21,'XTickLabel',num2str((21:-1:0).'));
Altri suggerimenti
Questo potrebbe aiutarti?
set(gca,'XDir','reverse')
MODIFICAREPotresti trovare molto interessante qui. Saluti!