2017-08-16 2 views
1

Ich benutze Seaborn um eine Heatmap zu zeichnen. Wenn es zu viele Yticks gibt, werden einige davon automatisch ausgeblendet. Das Ergebnis sieht so aus:
heatmapSeaborn Automatisch Ytzicks ausblenden wenn es zu viele Yticks gibt

Wie Sie sehen können, werden nur die yticks zeigt 1, 3, 5, 7 .... 31, 33 Wie kann ich Seaborn lassen oder matplotlib alle von ihnen zeigen mögen: 1 , 2, 3, 4 ... 31, 32, 33, 34?

mein Code:

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() 

Antwort

2

Seaborn heatmap liefert Argumente

xticklabels, yticklabels: „auto“, Bool, Liste-like, oder int, optional
True, zeichnen Sie die Spaltennamen des Datenrahmens. Wenn Falsch, plotten Sie die Spaltennamen nicht. Wenn sie listartig sind, zeichnen Sie diese alternativen Bezeichnungen als Xticklabels auf. Wenn Sie eine Ganzzahl verwenden, verwenden Sie die Spaltennamen, aber zeichnen Sie nur jedes n Label. Wenn "auto", versuchen Sie nicht überlappende Beschriftungen dicht zu plotten.

Daher ist die einfachste Lösung, yticklabels=1 als Argument hinzuzufügen.

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

enter image description here

+0

Thank you very much. Es funktioniert gut für mich! – sunnwmy

Verwandte Themen