如果有太多的yticks,Seaborn自动隐藏yticks

时间:2017-08-16 08:06:33

标签: python matplotlib seaborn data-analysis

我正在使用seaborn绘制热图。但如果有太多的yticks,其中一些将自动隐藏。结果如下:
heatmap

如你所见,yticks只显示1,3,5,7 ...... 31,33 我怎样才能让seaborn或matplotlib显示所有这些:1,2,3,4 ...... 31,32,33,34?

我的代码是:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

y = np.random.randint(1, 100, 510)
y = y.reshape((34,15))
df = pd.DataFrame(y, columns=[x for x in 'wwwwwwwwwwwwwww'], index=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34'])
sns.heatmap(df, annot=True)
plt.yticks(rotation=0)
plt.show()

1 个答案:

答案 0 :(得分:2)

Seaborn heatmap提供参数

  

xticklabels, yticklabels:“auto”,bool,list-like或int,可选
  如果为True,则绘制数据框的列名称。如果为False,则不绘制列名称。如果是列表,则将这些替代标签绘制为xticklabels。如果是整数,则使用列名称,但仅绘制每个n标签。如果是“自动”,请尝试密集绘制不重叠的标签。

因此,easyies解决方案是添加yticklabels=1作为参数。

sns.heatmap(df, annot=True, yticklabels=1)

enter image description here