python пакет seaborn: xticklabels становится полной каплей - PullRequest
0 голосов
/ 10 марта 2020

У меня возникли некоторые проблемы с отображением xticklabels в моей карте тепловых нагрузок на морского побережья Xticklabels в моем случае - это массив numpy с плавающей точкой. (если я распечатаю этот массив, он выглядит следующим образом),

xlabel is [  2.025   2.075   2.125 ... 143.725 144.075 221.075]

однако я получаю полный шарик на оси x. enter image description here

Ниже приведен код, который я использовал,

import seaborn
import matplotlib.pyplot as plt

def plotPosterior(T, xlabels, ylabels, title='Posterior Distribution'):
    xlabels = [str(x) for x in xlabels]
    fig, ax = plt.subplots(figsize=(16,15))
    ax = seaborn.heatmap(T, annot=False, xticklabels=xlabels, yticklabels=ylabels, cmap='Oranges')
    plt.title(title, fontsize=28, fontweight='bold')
    plt.xlabel('Bin Midpoint', fontsize=15, fontweight='bold')
    plt.ylabel('TMRCA of IBDs', fontsize=15, fontweight='bold')
    plt.savefig(f'{title}.png', dpi=300)

, если я просто уменьшу xticklabels (сэмплируем каждую десятую из них), я получу следующее странная фигура enter image description here и код для сокращения xticklabels (исключая вторую строку в функции, остальная часть функции такая же, как указано выше)

import seaborn
import matplotlib.pyplot as plt

def plotPosterior(T, xlabels, ylabels, title='Posterior Distribution'):
    print(f'xlabel is {xlabels}')
    subsample_xlabels = [x for i, x in enumerate(xlabels) if i%10 == 0] #downsampling
    fig, ax = plt.subplots(figsize=(16,15))
    ax = seaborn.heatmap(T, annot=False, xticklabels=subsample_xlabels, yticklabels=ylabels, cmap='Oranges')
    plt.title(title, fontsize=28, fontweight='bold')
    plt.xlabel('Bin Midpoint', fontsize=15, fontweight='bold')
    plt.ylabel('TMRCA of IBDs', fontsize=15, fontweight='bold')
    plt.savefig(f'{title}.png', dpi=300)

Надеюсь, кто-то может указать способ правильно отображать xticklabels. Большое спасибо!

...