Seaborn Heatmap: отрегулируйте ширину линии по вертикали и горизонтали отдельно - PullRequest
0 голосов
/ 08 апреля 2020

Параметр linewidth регулирует размер пространства между каждой ячейкой. Например:

import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np; np.random.seed(0)
uniform_data = np.random.rand(2000, 6)
ax = sns.heatmap(uniform_data)

normal heatmap

plt.clf()
ax = sns.heatmap(uniform_data, linewidth=0.0001)

enter image description here

Вы можете видеть только белый потому что форма моей тепловой карты значительно искажена: 2000 строк и 6 столбцов. Я хотел бы иметь вертикальный пробел между каждым столбцом ячейки. Поэтому мне нужно найти способ отдельно отрегулировать ширину вертикальной линии. Как этого достичь?

1 Ответ

0 голосов
/ 08 апреля 2020

Настройка ширины линии применяется к ширине ребра прямоугольника вокруг каждой ячейки. Чтобы иметь только вертикальные линии, axvline() dr aws вертикальная линия, по умолчанию от верха до низа графика. Чтобы просто разделить столбцы, можно провести линии в положениях 1,2, ... n-1. Кроме того, наличие линии в позициях 0 и n помогает сделать столбцы визуально одинаково широкими.

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

uniform_data = np.random.rand(200, 6)
ax = sns.heatmap(uniform_data)
for i in range(uniform_data.shape[1]+1):
    ax.axvline(i, color='white', lw=2)
plt.tight_layout()
plt.show()

resulting plot

...