如何在 scipy 生成的 ddrogram 中为 x 轴刻度标签获得更大的字体大小?

Posted

技术标签:

【中文标题】如何在 scipy 生成的 ddrogram 中为 x 轴刻度标签获得更大的字体大小?【英文标题】:How to get a bigger font size for x-axis tick labels in scipy-generated dedrogram? 【发布时间】:2015-11-09 15:00:24 【问题描述】:

使用以下导入:

import matplotlib as mpl
from scipy.cluster.hierarchy import dendrogram

我因此全局设置字体大小(基于this other Stack Overflow answer):

mpl.rcParams.update('font.size': 20)

然后我使用以下内容创建树状图(其中m 是在其他地方创建的矩阵):

dendrogram(m)

最后我展示了这个情节:

mpl.pyplot.show()

y 轴刻度标签是预期的 20 点。但是,x 轴刻度标签很小,远小于 20 点。尽管上面的字体大小设置,matplotlib 似乎会自动缩小字体大小以适应数据的密度。即使我放大并且有足够的空间显示较大的字体也是如此。

如何让 x 轴刻度使用较大的字体?

【问题讨论】:

【参考方案1】:

你可以用Axes.tick_params()方法做到这一点:

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
import numpy

N = 20
n = numpy.random.normal(size=(N, 2))
Z = linkage(n)

# implicit interface
dendrogram(Z)
ax = plt.gca()
ax.tick_params(axis='x', which='major', labelsize=15)
ax.tick_params(axis='y', which='major', labelsize=8)
plt.savefig('t.png')

# explicit interface
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
dendrogram(Z, ax=ax)
ax.tick_params(axis='x', which='major', labelsize=15)
ax.tick_params(axis='y', which='major', labelsize=8)
fig.savefig('t.png')

【讨论】:

如何也使用粗体字?【参考方案2】:

另一种调整x轴字体大小的方法是改变leaf_font_size

dendrogram(linkage_matrix, leaf_font_size=8)

Here 是一个树状图教程,我觉得很有用。

【讨论】:

以上是关于如何在 scipy 生成的 ddrogram 中为 x 轴刻度标签获得更大的字体大小?的主要内容,如果未能解决你的问题,请参考以下文章

在Python中为概率密度函数生成随机数

如何在 Rails 中为现有模型生成表单?

如何在 SciPy 中正确使用 Kolmogorov Smirnov 测试?

如何在 SQL Server 2000 中为所有单笔表格生成脚本? [关闭]

如何在 React 中为表单标签生成唯一 ID?

如何在python中为apriori算法生成k-itemset