Sto utilizzando il pacchetto Phylo di Biopython per creare alberi filogenetici.In python, come posso modificare la dimensione del font dei nodi foglia quando si generano alberi filogenetici usando Bio.Phylo.draw()?
Per alberi grandi, ho bisogno di diminuire il carattere dei nodi foglia. È stato suggerito di cambiare matplotlib.pyplot.rcParams ['font.size'] ma questo mi permette solo di cambiare nomi e titoli degli assi, dato che Phylo definisce le proprie dimensioni dei caratteri. Non riesco a cambiare il codice sorgente Phylo mentre lo sto usando all'Università. La definizione di figure o assi non è un'opzione in quanto Phylo.draw() ne crea uno proprio.
Qualcuno ha qualche suggerimento su come risolvere il problema, magari allungando l'asse y?
Finora ho usato il seguente codice per produrre l'albero:
import matplotlib
import matplotlib.pyplot as plt
from Bio import Phylo
from cStringIO import StringIO
def plot_tree(treedata, output_file):
handle = StringIO(treedata) # parse the newick string
tree = Phylo.read(handle, "newick")
matplotlib.rc('font', size=6)
Phylo.draw(tree)
plt.savefig(output_file)
return
Perfetto, grazie mille, questo è esattamente quello che volevo. Un'altra cosa che potresti anche sapere è come estendere il numero massimo di caratteri dei nodi foglia. Come puoi vedere, alcuni nomi sono abbreviati e completati con '...' – madcap
@madcap Come hai fatto per le dimensioni del carattere prova qualcosa che si occupa della larghezza della linea (rcParams ["lines.linewidth"]). Potrebbe funzionare. Se no fammi sapere che guarderò oltre. Puoi in qualche modo inviarmi il tuo albero di esempio in modo che io possa effettivamente giocare con esso? Fábio –
Provare la seguente parte dell'albero in cui cinque dei nomi dei nodi foglia sono troppo lunghi e non vengono visualizzati completamente. – madcap