Настройка yticklabels с пользовательским шагом в тепловой карте Seaborn - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу добавить пользовательские галочки к моей тепловой карте. Первый с параметрами по умолчанию, но когда я добавляю галочки

enter image description here

Они идут наверх:

enter image description here

yticklabels = []
for i in range(25):
    yticklabels.append(str(i) + "Mb")
ax = sns.heatmap(result, cmap=cmap, yticklabels = yticklabels)

Также пытался добавить yticks таким образом, но ярлыки также прикреплены к вершине

yticklabels,yticks = [], []
for i in range(45):
    yticklabels.append(str(i) + "Mb")
    yticks.append(i)
ax = sns.heatmap(result, cmap=cmap, yticklabels = yticklabels)
ax.yticks = yticks

Так что полный пример не так прост, но здесь он идет:

for k,  chromosome in df_genome.iterrows():
    df_chromosome = df_blast[(df_blast.sseqid == chromosome.seqname)]
    print chromosome.seqname
    print(len(df_chromosome))
    for i in range(0, chromosome.end, args.step):
        start = i
        end = i + args.step
        if end > chromosome.end:
            continue
#            start = chromosome.end - args.step 
#            end = chromosome.end + 1
        #print start, end
        hits_count = len(df_chromosome[(df_chromosome.sstart >= start) & (df_chromosome.sstart <= end) & (df_chromosome.pident >= 80)])
        if hits_count > max_hits_count:
            max_chr_start = start
            max_chr_end = end
            max_chr = chromosome.seqname
            max_hits_count = hits_count
            print '->',chromosome.seqname,max_hits_count
        #print(chromosome.seqname, start, end, hits_count)
        position = start / 1000000.0
        result.append( [chromosome.seqname,position, hits_count] )
        #print result
df = pd.DataFrame(result)
df.columns = ['chromosome','position','hits']
result = pd.pivot_table(data=df,
                    index='position',
                    values='hits',
                    columns='chromosome')

#This is where I am stucked
    yticklabels = []
    for i in range(45):
    yticklabels.append(str(i) + "Mb")

    ax = sns.heatmap(result, cmap=cmap,yticklabels=7)
...