动态旋转ggplot轴标签(如果它们会重叠)

时间:2019-03-25 02:40:41

标签: r ggplot2 axis-labels

我想知道是否有一种方法可以检查x轴标签是否重叠,并且只有在使用R中的ggplot2旋转它们时才可以。我当前的问题是我正在使用一个函数来绘制数据并我希望能够提供不同数量的数据,但仍能获得明智的外观。

我知道,如果调整绘图窗口的大小,那么重叠的踢进将有所不同,因此不确定在知道大小的情况下是否可以在保存期间添加该窗口。

有人有任何提示或解决方法吗?

这是一个非常简化的示例:

库(ggplot)

testdf1 <- data.frame(Year = as.factor(rep(1990:2000, each = 10)), value = rnorm(110, mean = rep(sample(1:11),each = 10 )))
testdf2 <- data.frame(Year = as.factor(rep(1951:2000, each = 10)), value = rnorm(500, mean = rep(sample(1:11,50, replace = T),each = 10 )))

myplotfun <- function(dat){
  ggplot(dat, aes(x = Year, y = value))+
    geom_boxplot()
}
plt1 <- myplotfun(testdf1)
plt2 <- myplotfun(testdf2)

我当然可以添加

plt2 <- plt2 +
   theme(axis.text.x = element_text(angle = 90, hjust = 1))

或将其添加到函数中,以便它适用于所有图,但是我通常希望图不旋转(因此我不想应用于所有图),并且我不想手动查看并指定是否轮播。

请注意,此示例将轴标签设置为年份,因此从理论上讲我并不需要它们,但我希望能够在标签属于类别的其他情况下使用此标签,因此需要全部使用贴上标签。

我发现很难找到与此相关的信息,除了这个未回答的主题https://www.reddit.com/r/rstats/comments/951vc1/overlapping_labels_in_ggplot/

此情节提出了类似的问题,但答案(虽然对海报有帮助)不能解决我的问题,因为我需要显示所有标签 overlapping axis label depending on the window size

0 个答案:

没有答案