matplotlib Pyplot:更改轴上刻度线的大小

ifmq2ha2  于 2023-03-03  发布在  其他
关注(0)|答案(3)|浏览(215)

考虑这个可重复的例子:

import numpy as np
import matplotlib.pyplot as plt
labels = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21']
fig, axes = plt.subplots(nrows=3, ncols=3,figsize=(6, 3.5),dpi=300)
plt.subplots_adjust(wspace=0.025, hspace=0.2)
for ax in [a for b in axes for a in b]:
    ax.imshow(np.random.randint(2, size=(22,42)))
    ax.set_xticks([0,6,12,18,24,30,36,41])
    ax.tick_params(axis='x', which='major', labelsize=3)
    ax.set_yticks([])
    ax.set_aspect('equal')
for ax in [item for sublist in axes for item in sublist][0::3]:
    ax.set_yticks(range(len(labels)))
    ax.set_yticklabels(labels,fontsize=3)
fig.savefig("example.png",bbox_inches='tight')

我的问题是,即使我改变了刻度的字体大小,每个刻度的线条仍然保持不变。这看起来很难看,浪费了很多空间,特别是在X轴上。有什么想法如何使这些线条更小,从而使xlabel更接近轴?
PS tight_layout()没有帮助。

unhi4e5o

unhi4e5o1#

制造
ax.tick_params(axis='x', which='major', labelsize=3, length=2)
紧接着
ax.tick_params(axis='y', which='major', labelsize=3, length=2)
这将使刻度变小,但不会使标签更靠近图表。
PS:length=1会让滴答声变得更小,很明显。

o2g1uqev

o2g1uqev2#

您可以使用width参数:
ax.tick_params(axis='x', which='major', labelsize=3, width=0.1)

0wi1tuuw

0wi1tuuw3#

代替(第4行):

fig, axes = plt.subplots(nrows=3, ncols=3,figsize=(6, 3.5),dpi=300)

您可以操纵figsize。例如:

fig, axes = plt.subplots(nrows=3, ncols=3,figsize=(3, 2),dpi=300).

让我们比较两个输出:

轴上的数字比旧的大。

相关问题