【问题标题】:R ggplot spacing and sorting the figureR ggplot间距和排序图
【发布时间】:2020-04-23 09:19:32
【问题描述】:
data=data.frame("X"=c(22,5,8,17,7,22),
"XMIN"=c(17.6,4,6.4,13.6,5.6,17.6),
"XMAX"=c(26.4,6,9.6,20.4,8.4,26.4),
"VAR"=c('A','B','C','A','B','C'),
"L1"=c(1,2,3,1,2,3),
"L2"=c(1,1,1,2,2,2))


ggplot(data) +
  geom_pointrange(aes(
    ymin = XMIN,
    ymax = XMAX,
    y = X,
    x = reorder(VAR, -X),
    colour = factor(L1),
    shape = factor(L1),
    linetype = factor(L2)))

我希望在每个变量 A、B、C 的行之间添加空格。同样在 (A,B,C) 内,对于每个变量,我希望按 X 值从最低到最高对行进行排序。

enter image description here

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以使用“躲避”位置在单个 x 轴值内的点范围之间留出空间,并使用reorder 更改轴的顺序(有关详细信息,请参阅常见问题解答链接)。

    ggplot(data) +
      geom_pointrange(aes(
        ymin = XMIN,
        ymax = XMAX,
        y = X,
        x = reorder(VAR, X),
        colour = factor(L1),
        shape = factor(L1),
        linetype = factor(L2)),
        position = position_dodge(width = 0.5))
    

    【讨论】:

    • 非常感谢,我不会再合并它们了。我尝试重新排序,因为你也包括在内,这重新排序了 X 轴上的变量。我希望保持 X 轴上的排序,并在每个变量(A、B、C)中排序。这有意义吗?
    • 我在原问题中加了一张图片帮助解释
    • 知道了。这实际上是我前几天意识到的事情,我不知道该怎么做,也无法很快找到答案。我会把它作为一个单独的问题发布——我有兴趣看到一个解决方案。称之为“如何控制 position_dodge 的顺序?”
    • 很遗憾,我不能再发布另一个问题 2 小时!
    • 好了,您现在知道如何进行基本订购以及如何腾出空间了。我将删除此答案,您可以将此问题编辑为“如何控制 position_dodge 的顺序?”问题。
    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    相关资源
    最近更新 更多