ggradar:如何增加长轴标签的 space

ggradar: how to increase space for long axis labels

我想用 ggradar 包创建雷达图。问题是我有很长的标签并且它们被剪掉了(如下图两个红色矩形内所示)。

library(ggplot2)
library(tidyverse)
library(ggradar)

df <- structure(list(date = c("2022-1-31", "2022-2-28"), 
                     Item_A_Long = c(50.1, 50.2), 
                     Item_B_Very_Very_Long = c(48.4, 49), 
                     Another_Item_C_very_long_label = c(47.2, 48.6)),
                class = "data.frame", row.names = c(NA, -2L))
df

df %>% 
  mutate(across(contains('Item'), ~ (.x - 45) / 10)) %>%
  ggradar(values.radar = c('45', '50', '55'),
          legend.position = 'bottom') +
  theme(
        axis.text = element_text(hjust=0.5, vjust = 1)
        # margin = margin(0, 0, 2, 0, 'cm')
        )

输出:

我想我可以通过添加 axis.text = element_text(hjust=0.5, vjust = 1)plot.margin = margin(0, 0, 2, 0, 'cm') 在标签和绘图之间创建更多 space,但它不起作用。

欢迎提出任何增加标签 space 的想法(除了缩小字体)。

参考:

您可以增加 plot.margin 并添加 coord_cartesian(clip = "off")。但是,这会扭曲雷达图的尺寸。我玩弄了绘图窗格来解决这个问题。不过,我相信您的问题有更聪明的解决方案。

df %>% 
  mutate(across(contains('Item'), ~ (.x - 45) / 10)) %>%
  ggradar(values.radar = c('45', '50', '55'),
          legend.position = 'bottom') +
  theme(
    axis.text = element_text(hjust=0.5, vjust = 1),
    plot.margin = margin(0, 5, 0, 5, 'cm')) +
  coord_cartesian(clip = "off")