如何使用ggplot2 facet_grid注释没有数据的构面?

周杰伦

我有一个在大facet_grid中绘制的多元纵向样本,特别是使用facet_grid,以便当我没有某个特定样本的特定时间点时,它仍将所有内容保持在一个井井有条的网格中。我试图向空的方面添加某种指示符,以表明它们没有数据(而不只是没有点出现),因为有时空的方面是尚未收集该样本的结果。我能够得到的是在确实有数据的每个方面显示的标签,但是我似乎无法弄清楚如何在没有数据的每个方面显示的标签。如果您也有建议,我可以通过选择构面或其他指示“无可用数据”的方式添加红色X而不是文本标签,那会更好。

ggplot(mpg, aes(displ, cty)) + geom_point() + 
facet_grid(vars(drv), vars(cyl)) + geom_text(x = 5, y = 20, label = "Blah")

样例图

eipi10

您可以使用来为缺少的组合添加行full_join这些新行将没有数据,因此将不会绘制任何内容,但是您可以在消息中添加另一列,该列geom_text将使用:

library(tidyverse)
theme_set(theme_bw())

mpg %>% 
  full_join(crossing(drv=unique(mpg$drv), cyl=unique(mpg$cyl))) %>% 
  mutate(empty=ifelse(is.na(model), "No data available", NA_character_),
         x=mean(range(displ, na.rm=TRUE)), 
         y=mean(range(cty, na.rm=TRUE))) %>% 
  ggplot(aes(displ, cty)) + 
    geom_point() + 
    facet_grid(vars(drv), vars(cyl)) + 
    geom_text(aes(x, y, label=empty), colour="red", size=3)

在此处输入图片说明

对于“ X”,将empty文本更改"X"为大尺寸并绘制。例如:

mpg %>% 
  full_join(crossing(drv=unique(mpg$drv), cyl=unique(mpg$cyl))) %>% 
  mutate(empty=ifelse(is.na(model), "X", NA_character_),
         x=mean(range(displ, na.rm=TRUE)), 
         y=mean(range(cty, na.rm=TRUE))) %>% 
  ggplot(aes(displ, cty)) + 
    geom_point() + 
    geom_text(aes(x, y, label=empty), colour="red", size=20) +
    facet_grid(vars(drv), vars(cyl))

在此处输入图片说明

或者我们可以使用geom_segment

mpg %>% 
  full_join(crossing(drv=unique(mpg$drv), cyl=unique(mpg$cyl))) %>% 
  ggplot(aes(displ, cty)) + 
    geom_point() + 
    geom_segment(data=. %>% filter(is.na(model)),
                 x=min(mpg$displ), xend=max(mpg$displ),
                 y=min(mpg$cty), yend=max(mpg$cty),
                 colour="red") +
    geom_segment(data=. %>% filter(is.na(model)),
                 x=min(mpg$displ), xend=max(mpg$displ),
                 y=max(mpg$cty), yend=min(mpg$cty),
                 colour="red") +
    facet_grid(vars(drv), vars(cyl))

在此处输入图片说明

只需调用一次即可完成上述操作geom_segment,但需要(AFAICT)进行更复杂的数据准备:

mpg %>% 
  full_join(crossing(drv=unique(mpg$drv), cyl=unique(mpg$cyl))) %>% 
  ggplot(aes(displ, cty)) + 
    geom_point() + 
    geom_segment(data=. %>% 
                   filter(is.na(model)) %>% 
                   select(-displ, -cty) %>% 
                   crossing(
                     displ=range(mpg$displ),
                     cty=range(mpg$cty)
                   ),
                 aes(xend=rev(displ), yend=rev(cty)), colour="red") +
    facet_grid(vars(drv), vars(cyl))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用facet_wrap和ggplot2在每个构面内绘制整个数据

来自分类Dev

如何在ggplot2中使用facet_grid制作甜甜圈图?

来自分类Dev

在ggplot2中使用facet_grid()函数时,如何使用labeller()函数获取列总计显示在构面的标签中

来自分类Dev

使用facet_grid / ggplot2将时间序列数据偏移一天

来自分类Dev

在ggplot2中使用facet_grid()时如何定义常见的y轴限制

来自分类Dev

r-如何在ggplot2中使用facet_grid获得长标签以适合?

来自分类Dev

使用ggplot2按组进行构面:代码产生没有构面的单个图形

来自分类Dev

如何使用ggplot2清理数据并创建图形?

来自分类Dev

ggplot2中的facet_wrap()和facet_grid()有什么区别?

来自分类Dev

ggplot2 stat_function,具有facet_grid中不同数据子集的计算参数

来自分类Dev

使用facet_grid时使用..count ..的R ggplot2

来自分类Dev

使用指定大小的图像注释ggplot2构面背景的特定区域

来自分类Dev

ggplot2构面:每个图都有不同的注释文本

来自分类Dev

ggplot2直方图:如何使用ggplot2将文本注释添加到直方图栏上

来自分类Dev

如何在ggplot2 :: facet_grid中格式化网格标题和条目

来自分类Dev

ggplot2 facet_grid:如何修复geom_col中列之间的不同间距

来自分类Dev

ggplot2中facet_grid的图层无效

来自分类Dev

改变ggplot2中的facet_grid输出

来自分类Dev

ggplot2中的facet_grid错误

来自分类Dev

结合 facet_grid (ggplot2) 和 denscomp (fitdistrplus)

来自分类Dev

在ggplot2中使用facet_grid的自定义散点图矩阵

来自分类Dev

使用ggplot2中的facet_grid更改中断次数

来自分类Dev

ggplot2 facet_grid,带有方面标题

来自分类Dev

R ggplot2类似于facet_grid的结果,但具有独立列

来自分类Dev

使用ggplot2构面网格探索具有连续变量和分类变量的大型数据集

来自分类Dev

火山图错误(使用ggplot2):绘制时没有数据

来自分类Dev

如何使用Latex2exp使用变量注释ggplot2图?

来自分类Dev

如何在 R 中使用 ggplot2 为数据提供两个注释

来自分类Dev

数据可视化:使用ggplot2和构面布局的地图

Related 相关文章

  1. 1

    使用facet_wrap和ggplot2在每个构面内绘制整个数据

  2. 2

    如何在ggplot2中使用facet_grid制作甜甜圈图?

  3. 3

    在ggplot2中使用facet_grid()函数时,如何使用labeller()函数获取列总计显示在构面的标签中

  4. 4

    使用facet_grid / ggplot2将时间序列数据偏移一天

  5. 5

    在ggplot2中使用facet_grid()时如何定义常见的y轴限制

  6. 6

    r-如何在ggplot2中使用facet_grid获得长标签以适合?

  7. 7

    使用ggplot2按组进行构面:代码产生没有构面的单个图形

  8. 8

    如何使用ggplot2清理数据并创建图形?

  9. 9

    ggplot2中的facet_wrap()和facet_grid()有什么区别?

  10. 10

    ggplot2 stat_function,具有facet_grid中不同数据子集的计算参数

  11. 11

    使用facet_grid时使用..count ..的R ggplot2

  12. 12

    使用指定大小的图像注释ggplot2构面背景的特定区域

  13. 13

    ggplot2构面:每个图都有不同的注释文本

  14. 14

    ggplot2直方图:如何使用ggplot2将文本注释添加到直方图栏上

  15. 15

    如何在ggplot2 :: facet_grid中格式化网格标题和条目

  16. 16

    ggplot2 facet_grid:如何修复geom_col中列之间的不同间距

  17. 17

    ggplot2中facet_grid的图层无效

  18. 18

    改变ggplot2中的facet_grid输出

  19. 19

    ggplot2中的facet_grid错误

  20. 20

    结合 facet_grid (ggplot2) 和 denscomp (fitdistrplus)

  21. 21

    在ggplot2中使用facet_grid的自定义散点图矩阵

  22. 22

    使用ggplot2中的facet_grid更改中断次数

  23. 23

    ggplot2 facet_grid,带有方面标题

  24. 24

    R ggplot2类似于facet_grid的结果,但具有独立列

  25. 25

    使用ggplot2构面网格探索具有连续变量和分类变量的大型数据集

  26. 26

    火山图错误(使用ggplot2):绘制时没有数据

  27. 27

    如何使用Latex2exp使用变量注释ggplot2图?

  28. 28

    如何在 R 中使用 ggplot2 为数据提供两个注释

  29. 29

    数据可视化:使用ggplot2和构面布局的地图

热门标签

归档