4

我需要使用和显示星星来表示我的重要性pheatmp,我使用了以下方法。如您所见,图中报告的星星穿过单元格边界。有没有办法让它在单元格内居中?

test_vals <- matrix(rnorm(20), 5, 4)
test_labels <- matrix(1:20, 5, 4) 
test_labels[test_labels<=10] <- "**"
pheatmap(test_vals, display_numbers = test_labels, fontsize_number=40, cellheight=20)
4

1 回答 1

3

我没有找到解决您任务的直接方法,所以我可以建议一些肮脏的黑客。您可以使用与 Unicode (U+2217 ASTERISK OPERATOR) 不同的星号符号。所以试试这个:

更新:可以将 Unicode 字符串传递给绘图函数而无需先前的解析。因此,我更新了代码并删除了stringi库要求。

library(pheatmap)

test_vals <- matrix(rnorm(20), 5, 4)
test_labels <- matrix(1:20, 5, 4) 
test_labels[test_labels <= 10] <- "\u2217\u2217"
pheatmap(test_vals, display_numbers = test_labels, fontsize_number=20, cellheight=20)

这是一个结果: 具有不同 Unicode 字符的 pheatmap 示例结果

此外,您可以尝试其他变体。接下来的两个是普通星号稍大。

# Heavy asterisk
#test_labels[test_labels<=10] <- "\u2731\u2731"
# Full width asterisk
#test_labels[test_labels<=10] <- "\uFF0A\uFF0A"
于 2019-02-10T22:48:34.693 回答