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)

enter image description here

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?)

È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top