【问题标题】:How do I change the position of labels in the R treemap?如何更改 R 树图中标签的位置?
【发布时间】:2013-08-08 14:15:26
【问题描述】:

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

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

require(treemap)
data(GNI2010)

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

【问题讨论】:

    标签: r treemap


    【解决方案1】:

    最近版本的树形图现在可以使用 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"))
    )
    

    这会产生以下情节:

    【讨论】:

      【解决方案2】:

      很遗憾,目前还不可能。此功能已列出以供下次更新,但优先级较低。

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

      【讨论】:

        猜你喜欢
        • 2018-01-17
        • 2016-02-10
        • 2018-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-17
        • 1970-01-01
        相关资源
        最近更新 更多