如何在matplotlib.pcolor中取消堆栈yticklabel

时间:2014-05-08 13:16:02

标签: python matplotlib heatmap

以下代码是重现我的热图问题所需的最少代码量(评论中的完整代码):

import numpy as np
import string
from matplotlib import pylab as plt

def random_letter(chars=string.ascii_uppercase, size=2):
    char_arr = np.array(list(chars))
    if size > 27:
        size = 27
    np.random.shuffle(char_arr)
    return char_arr[:size]

y_labels = [', '.join(x for x in random_letter()) for _ in range(174)]
fig.set_size_inches(11.7, 16.5)

fig, ax = plt.subplots()
data = np.random.poisson(1, (174, 40))
heatmap = ax.pcolor(data, 
                    cmap=plt.cm.Blues, 
                    vmin=data.min(), 
                    vmax=data.max(), 
                    edgecolors='white')
ax.set_xticks(np.arange(data.shape[1])+.5, minor=False);
ax.set_yticks(np.arange(data.shape[0])+.5, minor=False);
ax.set_xticklabels(np.arange(40), 
                   minor=False, 
                   rotation=90, 
                   fontsize='x-small', 
                   weight='bold');
ax.set_yticklabels(y_labels, 
                   minor=False,  
                   fontsize='x-small',
                   weight='bold');
cb = fig.colorbar(heatmap, shrink=0.33, aspect=10)

我的问题是:有没有办法增加y刻度标签之间的距离?当我用A3(尺寸合适)打印时,它仍然几乎不可读,因为字母相互堆叠。我试图修复yticklabelpads但没有成功。

提前谢谢大家 heatmap

0 个答案:

没有答案