R语言 在树图中旋转标签

szqfcxe2  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(223)

我正在使用RStudio构建一个简单的Treemap。我遇到的问题是,当Map构建时,其中一个组非常窄,因此标签非常小,难以阅读。我认为一个'简单'的修复将只是旋转标签。但我找不到办法。附近有工作吗?
下面是我的代码:

treemap(data2C,
        #data
        index="label",
        vSize="Number",
        type="index",
                
        # Main
        title="",
        
        # Borders:
        border.col=c("white"),             
        border.lwds=1,                         
        
        # Labels
        fontsize.labels=10,
        fontcolor.labels="white",
        fontface.labels=1,
        overlap.labels=0.5,
        inflate.labels=T)

下面是输出:enter image description here
提前感谢任何帮助

pn9klfpd

pn9klfpd1#

您可以使用ggplot2和treemapify根据图中最大给定值的比例旋转标签。此示例在标签小于最大值的5%时将标签旋转90度。

library(treemapify)
library(ggplot2)

# Sample data
data2C <- data.frame(
    label = c("Group A", "Group B", "Group C", "Group D", "Group E", "Group F", "Group G", "Group H", "Group I"),
    Number = c(40, 50, 30, 40, 60, 20, 30, 11, 1)
)

# Build treemap
tm <- ggplot(data2C, aes(area = Number, fill = label, label = label)) +
    geom_treemap(color = "white", size = 1) +  # Add white borders to rectangles
    geom_treemap_text(color = "white", size = 10, angle = ifelse(data2C$Number / max(data2C$Number) > 0.05, 0, 90)) +  # Set rotation for labels and change text color to white
    theme(legend.position = "none")  # Remove legend

# Plot the treemap
plot(tm)

输出:

您可能需要将值调整为0.05英寸

angle = ifelse(data2C$Number / max(data2C$Number) > 0.05, 0, 90)

根据您的数据集,使其按照您的意愿工作。
如果你知道你想旋转标签的确切数据点,你也可以用下面的代码替换geom_treemap_text:

geom_treemap_text(color = "white", size = 10, angle = c(0, 0, 0, 0, 0, 0, 0, 0, 90)) # Explicitly set "Group I" to be rotated by 90 deegrees

相关问题