R 如何在ggplot2中调整X轴标签位置

R 如何在ggplot2中调整X轴标签位置,r,ggplot2,R,Ggplot2,我一直在努力定制ggplot2生成图形的标签。最初,轴心是HabFac,它只有三层。然而,我需要x轴按HabFac进行分组,但它的标签是其他的 因此,我将x轴的极限增加到7 使用“缩放x离散”链接新的限制和标签 但这不起作用。。。 看起来标签和盒子的比例不同。我试图指定中断,但没有帮助 非常感谢您的帮助 代码: 编辑 下面是一些简化的数据 structure(list(Species = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1

我一直在努力定制ggplot2生成图形的标签。最初,轴心是HabFac,它只有三层。然而,我需要x轴按HabFac进行分组,但它的标签是其他的

  • 因此,我将x轴的极限增加到7
  • 使用“缩放x离散”链接新的限制和标签
  • 但这不起作用。。。 看起来标签和盒子的比例不同。我试图指定
    中断
    ,但没有帮助

    非常感谢您的帮助

    代码:

    编辑 下面是一些简化的数据

    structure(list(Species = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Barking treefrog", 
    "Cricket frog"), class = "factor"), Chemical = structure(c(1L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 
    5L, 5L), .Label = c("A", "B", "C", "D", "E"), class = "factor"), 
        logTissueConc = c(-1.10922426, -1.55698525, -0.67977088, 
        -1.22868756, -0.47476868, -0.89399639, -1.35670286, -2.35421158, 
        -2.49491771, -2.30921816, 2.06394108, 1.84732292, 1.62127641, 
        1.7299181, 1.72845824, -0.42136482, -0.03384518, -0.76756916, 
        -0.77322993, -1.20469607, -1.31449937, -1.52823116, -1.94002471, 
        -1.29272381, -1.75399776, -3, -0.5, -0.98828589, -1.2, -0.7, 
        0.73098756, 0.56309363, 0.55666185, 0.3785305, 0.31730552
        ), HabFac = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
        2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
        2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Aquatic", 
        "Arboreal"), class = "factor")), .Names = c("Species", "Chemical", 
    "logTissueConc", "HabFac"), class = "data.frame", row.names = c(NA, 
    -35L))
    

    当x轴是一个
    因子时,标签是
    a
    b
    c
    还是
    1
    2
    3
    并不重要。无论哪种方式,刻度都是离散的,因此指定
    1.25
    没有意义,就像
    a.43
    没有意义一样。您需要一个因子来表示分组(可能是
    HabFac
    )和另一个因子来表示各个级别。然后,您可以基于
    HabFac
    使用
    fill
    颜色,或者使用
    facet\u wrap
    HabFac
    一起使用
    aes(x=
    单个因子水平。@shujaa感谢您的回复。我认为应该有一种方法可以直接修改这些x标签的位置。就像我可以使用
    ggplot_gtable(p_TT)$data[[1]]更改框的位置一样$x
    如果您只想更改
    HabFac
    每一级别的标签,通常的方法就是重命名
    HabFac
    的级别。您的意思是将
    HabFac
    的级别从3增加到7,然后重命名它们吗?您能更具体一点吗?谢谢!我不知道
    HabFac
    的级别或标签是什么>是的,所以我不能具体说明。给出一些带有
    dput
    的示例数据和所需的输出,然后我们可以讨论细节。
    structure(list(Species = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Barking treefrog", 
    "Cricket frog"), class = "factor"), Chemical = structure(c(1L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 
    5L, 5L), .Label = c("A", "B", "C", "D", "E"), class = "factor"), 
        logTissueConc = c(-1.10922426, -1.55698525, -0.67977088, 
        -1.22868756, -0.47476868, -0.89399639, -1.35670286, -2.35421158, 
        -2.49491771, -2.30921816, 2.06394108, 1.84732292, 1.62127641, 
        1.7299181, 1.72845824, -0.42136482, -0.03384518, -0.76756916, 
        -0.77322993, -1.20469607, -1.31449937, -1.52823116, -1.94002471, 
        -1.29272381, -1.75399776, -3, -0.5, -0.98828589, -1.2, -0.7, 
        0.73098756, 0.56309363, 0.55666185, 0.3785305, 0.31730552
        ), HabFac = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
        2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
        2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Aquatic", 
        "Arboreal"), class = "factor")), .Names = c("Species", "Chemical", 
    "logTissueConc", "HabFac"), class = "data.frame", row.names = c(NA, 
    -35L))