重新排列堆叠的条形图图例标签而不更改 R 中的图(并修复刻度线)

内特

有没有办法在不改变绘图顺序的情况下更改堆叠条形图图例中因子水平的顺序(并且不会错误地标记数据)?我想先将顺序更改为“在场”,然后是“缺席”。

我也遇到了刻度线略微向一侧移动的问题。

dput(prop)
structure(list(WYR = c(2005L, 2005L, 2006L, 2006L, 2007L, 2007L, 
2008L, 2008L, 2009L, 2009L, 2010L, 2010L, 2011L, 2011L, 2012L, 
2012L, 2013L, 2013L, 2014L, 2014L, 2015L, 2015L, 2016L, 2016L, 
2017L, 2017L, 2018L, 2018L, 2019L, 2019L, 2020L, 2020L), CYR = c(2005L, 
2005L, 2006L, 2006L, 2007L, 2007L, 2008L, 2008L, 2009L, 2009L, 
2010L, 2010L, 2011L, 2011L, 2012L, 2012L, 2013L, 2013L, 2014L, 
2014L, 2015L, 2015L, 2016L, 2016L, 2017L, 2017L, 2018L, 2018L, 
2019L, 2019L, 2020L, 2020L), class = structure(c(1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("prop_zero", 
"prop_nonzero"), class = "factor"), proportions = c(0.170212765957447, 
0.829787234042553, 0.170212765957447, 0.829787234042553, 0.361702127659574, 
0.638297872340426, 0.234042553191489, 0.765957446808511, 0.234042553191489, 
0.765957446808511, 0.434782608695652, 0.565217391304348, 0.58695652173913, 
0.41304347826087, 0.574468085106383, 0.425531914893617, 0.51063829787234, 
0.48936170212766, 0.595744680851064, 0.404255319148936, 0.608695652173913, 
0.391304347826087, 0.51063829787234, 0.48936170212766, 0.404255319148936, 
0.595744680851064, 0.319148936170213, 0.680851063829787, 0.468085106382979, 
0.531914893617021, 0.608695652173913, 0.391304347826087)), row.names = c(NA, 
-32L), class = c("tbl_df", "tbl", "data.frame"))

ggplot(prop, aes(x = CYR, y = proportions, fill = class)) +
  geom_bar(position = "fill", stat = "identity") +
  scale_fill_manual(values = c("grey70", "grey20"), labels = c("Absence", "Presence")) + 
  scale_y_continuous(limits = c(0, 1.0), expand = expansion(mult = c(0, 0.05))) +
  scale_x_continuous(breaks = years, labels = ~ rep("", length(.x))) +
  # CYR labels
  annotate(
    geom = "text",
    x = prop$CYR,
    y = -Inf,
    label = prop$CYR,
    size = 6.5 / .pt,
    vjust = 2.5
  ) +
  # WYR labels
  annotate(
    geom = "text",
    x = prop$CYR,
    y = -Inf,
    label = prop$WYR,
    size = 6.5 / .pt,
    vjust = 4,
    color = "grey"
  ) +
  # CYR title
  annotate(
    geom = "text",
    x = -Inf,
    y = -Inf,
    label = c("CYR"),
    vjust = 2.5, hjust = 1,
    size = 6.5 / .pt
  ) +
  # WYR title
  annotate(
    geom = "text",
    x = -Inf,
    y = -Inf,
    label = c("WYR"),
    vjust = 4, hjust = 1,
    size = 6.5 / .pt,
    color = "grey") +
  coord_cartesian(clip = "off") +
  theme(
    axis.text.x.bottom = element_text(margin = margin(t = 8.8, b = 8.8)),
    axis.title.x = element_blank(),
    axis.text.y = element_text(size = 10),
    axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0), size = 14),
    axis.ticks = element_line(colour = "black", size = 1), 
    legend.title=element_blank(),
    panel.border = element_rect(fill = NA, color = "black", size = 1), 
    plot.title = element_text(hjust = 0.5)) +
  labs(y = "% presence/absence") +
  ggtitle("DRY SEASONS")

在此处输入图像描述

内特

在这里找到答案!:在不改变情节顺序的情况下翻转图例的顺序

只需将此代码添加到 ggplot 的末尾:+ guides(fill = guide_legend(reverse = TRUE))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重新排列条形图-R,ggplot,位置=“躲避”

如何在R中以每年正确的月份顺序重新排列条形图xaxis?

将绘制的条形图从两个图重新排列为R中的三个不同图

R中的堆叠条形图:对数据重新排序

堆叠的条形图,显示R中的反向标签

如何重新排列图例并将其移至ggplot中此堆积的条形图附近?

向R中的ggplot2中的堆叠条形图添加水平线,并在图例中显示

R,ggplot堆叠的条形图,位置=“填充”和标签

R中的堆叠的条形图

重新排列构面内的条形图

R水平堆叠的ggvis条形图

如何使用ggplot2将图例标题,键顺序和颜色更改为R中的多堆叠条形图

在保留值名称的同时,重新排列/排列图(表)中的条形图

R中具有连续标签和中断的堆叠条形图

带嵌套分组变量的多行轴标签,用于-R中的堆叠条形图

在R中排列堆积的条形图

R studio-R中的堆叠条形图

在 R 中创建分组条形图,条形未排列

向ggplot2 R中的堆叠条形图添加误差线-已解决

如何在R中的ggplot中更改堆叠条形图的位置?

修复刻面包裹的条形图ggplot2中的条形宽度

R中的ggplot:带对数刻度标签放错位置的条形图

R 中的堆叠条形图用于头对头统计

R条件着色中的堆叠条形图

在R中组合分组和堆叠的条形图

在R中的高图条形图中订购堆叠

在 r 中绘制堆叠和分组的条形图

R中带有图例a列的条形图

如何在R中重新排列图