1

首先,我对 R 和 stackoverflow 都很陌生,所以我对任何格式问题表示歉意。我正在尝试分别绘制多个个体,但是当我使用 时facet_wrap,情节太多,所以它们都非常小,无法看到。我切换到facet_wrap_paginate并且情节几乎完美......除了缺少x轴标签!

我的代码(使用 ggplot2 和 ggforce):

library(ggplot2)
library(ggforce)

lb <- c("8AM", "2PM", "8PM", "2AM", "8AM") 
L <- 1440 
xat <- c(1, L/4, L/2, 3*L/4, L)

    Baseline1 <- ggplot(Baseline.df_long, 
        aes(x = Minute, y = value, color = key, group = key)) +
        facet_wrap_paginate(~ key, ncol = 3, nrow = 3, page = 1, scales = "free_x") +
        geom_bar(stat = "identity") +
        scale_y_continuous(breaks=seq(0, 2500, 500), limits =c(0,2500)) +
        scale_x_discrete(name="Time", breaks=c(xat), labels=c(lb)) +
        labs(title ="Piglet Activity", y = "Activity") +
        theme_bw(base_size = 14) + 
        theme(legend.position = "none")

有无我都试过了scales = "free x",我也试过固定的。这些都没有什么不同。这是当前缺少 x 轴标签的样子:

Facet_wrap_paginate 缺少 x 轴标签

这就是我希望标签看起来的样子,并且我能够使用带有 facet_wrap 的单个列来为单个人做到这一点:Facet_wrap 具有正确 x 轴标签的个体动物

供参考,以便您知道这是什么类型的数据集,Baseline.df_long看起来像这样,但显然有更多数据

structure(list(Minute = 1:50, key = c("Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03", 
"Pig_03", "Pig_03", "Pig_03", "Pig_03", "Pig_03"), value = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 165L, 23L, 0L, 0L, 
0L, 0L, 12L, 0L, 0L, 0L, 0L, 0L, 0L, 81L, 0L, 0L, 12L, 12L, 0L, 
0L, 47L, 0L, 0L, 12L, 23L, 0L, 0L, 0L, 0L, 0L, 0L, 105L, 70L, 
47L, 0L, 0L, 0L, 0L)), row.names = c(NA, -50L), class = "data.frame")
4

1 回答 1

0

问题是您scale_x_discrete用于连续或数字数据。只需切换到scale_x_continuousx 轴和标签就会显示:

lb <- c("8AM", "2PM", "8PM", "2AM", "8AM") 
L <- 1440 
xat <- c(1, L/4, L/2, 3*L/4, L)

library(ggplot2)
library(ggforce)

ggplot(Baseline.df_long, 
                    aes(x = Minute, y = value, color = key, group = key)) +
  facet_wrap_paginate(~ key, page = 1, scales = "free_x") +
  geom_bar(stat = "identity") +
  scale_y_continuous(breaks=seq(0, 2500, 500), limits =c(0,2500)) +
  scale_x_continuous(name="Time", breaks = xat, labels = lb) +
  labs(title ="Piglet Activity", y = "Activity") +
  theme_bw(base_size = 14) + 
  theme(legend.position = "none")

于 2020-08-25T04:57:25.993 回答