如何更改R树形图中标签的位置?

时间:2013-08-08 14:15:27

标签: r treemap

我使用具有2级层次结构的R treemap package创建了一个树形图。

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

require(treemap)
data(GNI2010)

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

2 个答案:

答案 0 :(得分:1)

现在可以使用align.labels选项使用最新版本的treemap。还有其他一些可能有用的新选项。

align.list 的文档中,它说:

  

指定标签对齐的对象。指定水平对齐的两个值的字符向量("左","中"或"右")和垂直对齐(" top& #34;," center"或" bottom"),或者这样的字符向量列表,每个聚合级别一个。

需要注意的一点是,每个角色向量中的顺序都很重要。也就是说,首先是与x轴位置对应的值,然后是y轴位置。例如,c("右","底部")有效,但c("底部","右")不是。

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

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

产生以下情节: non-overlapping labels

答案 1 :(得分:0)

不幸的是,它还不可能。此功能列在下次更新中,但优先级较低。

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