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

Gho*_*r21 5 python fonts matplotlib scipy

使用以下导入:

import matplotlib as mpl
from scipy.cluster.hierarchy import dendrogram
Run Code Online (Sandbox Code Playgroud)

我因此全局设置了字体大小(基于另一个 Stack Overflow 答案):

mpl.rcParams.update({'font.size': 20})
Run Code Online (Sandbox Code Playgroud)

然后我用以下内容创建树状图(在m别处创建的矩阵在哪里):

dendrogram(m)
Run Code Online (Sandbox Code Playgroud)

然后最后我用以下方式显示情节:

mpl.pyplot.show()
Run Code Online (Sandbox Code Playgroud)

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

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

fja*_*rri 7

你可以用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')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明