当使用 fontsize.labels 设置为 0 作为顶级标签时,R Treemap 标签不合理吗?

R Treemap labels don't justify when using fontsize.labels set to 0 for top level labels?

我正在尝试删除在 Macbook Air 运行 Mavericks 上使用 R 3.1 版上的 2.4 版创建的 R 树形图上的顶级标签。

运行 以下示例来自树图文档:

require(treemap)
data(business)
business <- transform(business, data.available = factor(!is.na(turnover)), x = 1)
tm <- treemap(business,
              index=c("NACE1", "NACE2"),
              vSize="x",
              vColor="data.available",
              type="categorical")

这是生成的树状图:

我想删除顶级标签,例如"C - Manufacturing",等等,使用 fontsize.labels 参数表示:

"Use value 0 to omit the labels for the corresponding aggregation level."

当我尝试这个时:

tm <- treemap(business,
              index=c("NACE1", "NACE2"),
              vSize="x",
              vColor="data.available",
              type="categorical",
              fontsize.labels = c(0,16))

顶层标签确实被删除了,但二级标签不再正确对齐 - 字体大小减小,使文本全部排成一行,这使得阅读变得困难。

我试过使用 inflate.labels 但这是一个适用于所有级别的单一逻辑值(我的用例有 3 个嵌套级别,我只想删除顶级标签)和 lowerbound.cex.labels, force.print.labels 但似乎没有得到我想要的结果。

从 2.5 年前找到这个答案:How do I omit labels in the R treemap? 但我更愿意避免 post- 在绘制树图后对其进行处理(我将这些发送到 pdf,所以我不不想 post-之后处理 pdf 文件)。另外,我宁愿避免 运行 依赖于创建的树状图的内部结构的代码。

似乎 fontsize.labels 应该满足我的需要 - 只是无法让二级标签正确对齐(换行)。我错过了什么吗?

我认为这是由于一个错误导致所有标签换行都基于 fontsize.labels 向量中的第一个元素,而不是与相关级别相关的元素。此问题的一种解决方法是在树形图函数中设置 fontcolor.labels 和 bg.labels 参数以使标签透明(请注意 bg.labels 可以是颜色名称或从 0 到255 表示不透明度)。在您的示例中,这将是:

tm <- treemap(business,
              index=c("NACE1", "NACE2"),
              vSize="x",
              vColor="data.available",
              type="categorical",
              fontsize.labels = 16,
              fontcolor.labels=c("transparent", "black"),
              bg.labels=0
)

唯一的缺点是这会阻止 treemap 根据矩形的背景自动分配标签颜色。