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")
我想用 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")