matplotlib - Seaborn Heatmap:分别调整垂直和水平线的线宽
问题描述
该参数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 列。我想在每个单元格列之间有一个垂直的空白。因此,我需要想办法单独调整垂直线宽。怎样才能做到这一点?
解决方案
设置线宽适用于每个单元格周围矩形的边缘宽度。只有垂直线,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()
推荐阅读
- algorithm - 使用邻接矩阵与邻接链表时 Dijkstra 算法的时间复杂度
- javascript - 如何检测手机缺口?
- mysql - 试图加快对大型表的 mysql 查询
- r - 使用 R 中的文本预测连续变量
- amazon-web-services - 如何在 AWS 中为 DynamoDb 创建 CloudTrail?
- jmeter - Jmeter - 无法生成令牌
- php - 当我转到数据表的下一页时,使用 php 在数据表中过滤会忘记过滤器
- python - 如何在django中将表单发送到html
- javascript - 在导航上反应加载组件
- c# - Google.Apis.Requests.RequestError 请求的身份验证范围不足。[403] 在 GCP 中用于 Firebase 管理 Api