【问题标题】:Seaborn Heatmap: Adjust linewidth for vertical and horizontal line separatelySeaborn Heatmap:分别调整垂直和水平线的线宽
【发布时间】:2020-04-08 09:49:30
【问题描述】:

参数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)

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

您只能看到白色,因为我的热图形状明显偏斜:2000 行和 6 列。我想在每个单元格列之间有一个垂直的空白。因此,我需要想办法单独调整垂直线宽。如何实现?

【问题讨论】:

    标签: matplotlib seaborn heatmap


    【解决方案1】:

    设置线宽适用于每个单元格周围矩形的边缘宽度。要只有垂直线,axvline() 会绘制一条垂直线,默认从绘图的顶部到底部。为了仅分隔列,可以在位置 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()
    

    【讨论】:

      猜你喜欢
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 2017-06-30
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      相关资源
      最近更新 更多