我正在使用Biopython的Phylo软件包来创建系统发育树。
对于大树,我需要减少叶节点的字体大小。有人建议更改matplotlib.pyplot.rcParams [' font.size']但这只允许我更改轴名称和标题,因为Phylo定义了自己的字体大小。 我无法更改Phylo源代码,因为我在大学使用它。 定义数字或轴不是一个选项,因为Phylo.draw()创建了自己的。
有没有人对如何解决问题有任何建议,可能会拉伸y轴?
到目前为止,我使用以下代码生成树:
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
答案 0 :(得分:3)
Phylo.draw()可以将轴作为参数。 从Biopython中的方法文档中,您可以阅读以下内容
轴:matplotlib / pylab轴 如果是有效的matplotlib.axes.Axes实例,则在该Axes中绘制该phylogram。默认情况下(无),将创建一个新图。
这意味着您可以根据自己的尺寸加载自己的轴。例如
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)
# set the size of the figure
fig = plt.figure(figsize=(10, 20), dpi=100)
# alternatively
# fig.set_size_inches(10, 20)
axes = fig.add_subplot(1, 1, 1)
Phylo.draw(tree, axes=axes)
plt.savefig(output_file, dpi=100)
return
如果这对您有用,请告诉我。法比奥