У меня возникли некоторые проблемы с отображением xticklabels в моей карте тепловых нагрузок на морского побережья Xticklabels в моем случае - это массив numpy с плавающей точкой. (если я распечатаю этот массив, он выглядит следующим образом),
xlabel is [ 2.025 2.075 2.125 ... 143.725 144.075 221.075]
однако я получаю полный шарик на оси x.
Ниже приведен код, который я использовал,
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 (сэмплируем каждую десятую из них), я получу следующее странная фигура и код для сокращения 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. Большое спасибо!