1

我使用具有 2 个层次结构的R treemap 包制作了一个树形图。

我的问题是一些标签重叠,所以你不能真正看到较低级别的层次结构标签。在手册页的示例中(见下文),您看不到乌克兰的国家/地区标签,因为大陆标签(欧洲)位于其顶部。我知道你可以让标签的字体变小,但是有没有办法移动标签的位置?例如,我可以将大陆标签移动到大陆框的左上角,这样我就可以看到所有国家名称吗?

require(treemap)
data(GNI2010)

treemap(GNI2010,
   index=c("continent", "iso3"),
   vSize="population",
   vColor="GNI",
   type="value")
4

2 回答 2

2

现在,使用 align.labels 选项的最新版本的树形图可以做到这一点。还有其他几个新选项也可能有所帮助。

align.list的文档中它说:

指定标签对齐方式的对象。指定水平对齐(“左”、“中心”或“右”)和垂直对齐(“顶部”、“中心”或“底部”)的两个值的字符向量,或此类字符的列表向量,每个聚合级别一个。

需要注意的一点是,每个字符向量中的顺序都很重要。即先取x轴位置对应的值,再取y轴位置。例如,c("right", "bottom") 有效,但 c("bottom", "right") 无效。

这是您的原始示例已更正,因此标签不会重叠。

data(GNI2014)
treemap(GNI2014,
         index=c("continent", "iso3"),
         vSize="population",
         vColor="GNI",
         type="value", 
         align.labels = list(c("left", "top"), c("right", "bottom"))
)

产生以下情节: 非重叠标签

于 2017-04-13T19:23:38.847 回答
0

不幸的是,这还不可能。此功能已列出以供下次更新,但优先级较低。

可能有一个困难的方法来做到这一点:通过使用网格包手动调整绘图。您可以尝试使用 grid.ls() 找到大陆标签,然后移动它们。

于 2013-08-09T07:51:21.670 回答