相关疑难解决方法(0)

如何在ggplot2中为facet添加常规标签?

我经常有刻面的数值.我希望提供足够的信息来解释补充标题中的这些分面值,类似于轴标题.贴标签选项重复了许多不必要的文本,并且对于较长的变量标题不可用.

有什么建议?

默认值:

test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20))
qplot(data=test, x=x, y=y, facets=facet.b~facet.a)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要的是:

在此输入图像描述

我能在ggplot中做得最好:

qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如@Hendy所示,类似于: 在ggplot2图中添加辅助y轴 - 使其完美

label r facet ggplot2

79
推荐指数
3
解决办法
1万
查看次数

寻求由ggplot 2.2.0破坏的gtable_add_grob代码的解决方法

在具有多个构面变量的图中,ggplot2重复"外部"变量的构面标签,而不是在"内部"变量的所有级别上具有单个跨越构面条带.我有一直在使用,以覆盖与使用单个跨越小面条重复外端面标签一些代码gtable_add_grobgtable包.

不幸的是,由于facet strip的grob结构发生了变化,此代码不再适用于ggplot2 2.2.0.具体来说,在ggplot2的早期版本中,facet标签的每一行都有自己的一组grob.但是,在版本2.2.0中,看起来每个facet标签的垂直堆栈都是单个grob.这打破了我的代码,我不知道如何解决它.

这是一个具体的例子,取自几个月前我回答的SO问题:

# Data
df = structure(list(location = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L), .Label = c("SF", "SS"), class = "factor"), species = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 grob gtable

16
推荐指数
2
解决办法
1428
查看次数

ggplot2:更复杂的分面

我的热图继续变得越来越复杂.融化数据的一个示例:

head(df2)
  Class     Subclass         Family               variable value
1     A chemosensory family_1005117 caenorhabditis_elegans    10
2     A chemosensory family_1011230 caenorhabditis_elegans     4
3     A chemosensory family_1022539 caenorhabditis_elegans    10
4     A        other family_1025293 caenorhabditis_elegans    NA
5     A chemosensory family_1031345 caenorhabditis_elegans    10
6     A chemosensory family_1033309 caenorhabditis_elegans    10
tail(df2)
     Class Subclass        Family        variable value
6496     C  class c family_455391 trichuris_muris     1
6497     C  class c family_812893 trichuris_muris    NA
6498     F  class f family_225491 trichuris_muris     1
6499     F  class f family_236822 trichuris_muris     1
6500     F  class …
Run Code Online (Sandbox Code Playgroud)

r facet heatmap ggplot2

7
推荐指数
1
解决办法
1114
查看次数

如何使用JMP变异图制作嵌套x标签,但使用ggplot2

我喜欢JMP可变性图。(链接)这是一个强大的工具。

该示例的示例具有2个x轴标签,一个用于部件号,一个用于操作员。 JMP变异图2级

在这里,JMP变异图显示了两个以上级别的变量。以下按油量,批量和爆米花类型划分。找到正确的序列以显示最强的分离可能需要花费一些工作,但这是信息交流的绝佳工具。
JMP变异图2级

使用ggplot2库,如何用R使用多层x标签?

我能找到的最好的是这个(linklink),它根据圆柱数分开,但是不做x轴标签。

我的示例代码是这样的:

#reproducible
set.seed(2372064)

#data (I'm used to reading my own, not using built-in)
data(mtcars)
attach(mtcars)

#impose factors as factors
fact_idx <- c(2,8:11)
for(i in fact_idx){
     mtcars[,i] <- as.factor(mtcars[,i])
}

#boxplot
p <- ggplot(mtcars, aes(gear, mpg, fill=cyl)) + 
     geom_boxplot(notch = TRUE)  
p
Run Code Online (Sandbox Code Playgroud)

这给出的图是:

在此处输入图片说明

如何使x轴标签同时显示齿轮和气缸?

在jmp中我得到这个:
在此处输入图片说明

r ggplot2 boxplot sas-jmp

5
推荐指数
1
解决办法
1215
查看次数

R ggplot2 facet_grid具有3个或更多变量的"分层"格式

当我在我的一个维度上有多个变量时,我试图获得一个很好的显示,这样我facet_grid就不会重复每个列(或行)的所有变量的名称,而是在子框上有一个合并的框.使用R中的默认数据集(基于R Cookbook)的具体示例:

library(reshape2)
sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) +
      geom_point(shape=1) +
      facet_grid(smoker ~ sex+day)
sp
Run Code Online (Sandbox Code Playgroud)

这将返回类似于此图的顶部部分,其中Female/Male在每列的顶部重复.是否有一种方法(在R中)合并所有性别块以获得类似我上传的图的底部部分?(我和Gimp做了这个,不用说它不是一个理想的选择)

我查阅了文档,facet_grid感觉解决方案就是创建一个新的贴标机功能,但我对R来说太新了,无法继续使用它.我已经搜索了一下,看看是否有人已经解决了这个问题,但似乎没有找到任何答案.

有没有人知道已经为此目的创建的自定义贴标机功能,或者是否有人知道如何创建这样的自定义贴标机功能?那真是太神奇了.

r ggplot2 facet-grid

5
推荐指数
0
解决办法
860
查看次数

在ggplot2 facet_wrap中跨列组合多个方面条

我试图在两个相邻面板上组合刻面条(总是有两个相邻面板具有相同的第一个 ID 变量,但有两种不同的场景,我们称它们为“A”和“B”)。我并不特别拘泥于gtable+grid解决方案,我试过了,但遗憾的是我不能使用facet_nested()ggh4x包(我不能我公司的安装在服务器上,由于已经到位的各种限制和所需的依赖-我看着只使用相关的代码,但由于依赖关系,这也不容易)。

我希望通过组合顶部刻面条来指示哪些面板“属于一起”,从而使基本图的最小可行示例更易于阅读,如下所示:

library(tidyverse)
library(gtable)
library(grid)

idx = 1:16

p1 = expand_grid(id=idx, id2=c("A", "B"), x=1:10) %>%
  mutate(y=rnorm(n=n())) %>%
  ggplot(aes(x=x,y=y)) +
  geom_jitter() +
  facet_wrap(~id + id2, nrow = 4, ncol=8)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

带有“1”的条带、带有“2”的条带等应该组合在一起(实际上它是一个稍长的文本,但这只是为了说明)。我试图为类似的情况调整答案(/sf/answers/2822131931/ - 谢谢@markus 再次找到它),但这就是我尝试过的。正如你在下面看到的,我生产的高度似乎是错误的。我认为这一定是我忽略/不理解的一些微不足道的事情。

# Combine strips for a ID
g <- ggplot_gtable(ggplot_build(p1))
strip <- gtable_filter(g, "strip-t", trim = FALSE)
stript <- which(grepl('strip-t', g$layout$name))
  
stript2 = stript[idx*2-1]
top <- strip$layout$t[idx*2-1]
# # Using the $b below instead of b = top[i]+1, …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 gtable r-grid

5
推荐指数
2
解决办法
1345
查看次数

ggplot - 集中 facet_grid 标题并且只出现一次

我创建了一个图表,ggplot里面有两个变量facet_grid

我希望每个方面的标题仅在该方面的中心重复一次。

例如,第一个原始(上面)中的 0 和 1 将只出现一次并且出现在中间。

在我原来的情节中,每个方面的情节数量不相等。因此,使用两个地块拼凑patchwork/ cowplot/ggpubr不能很好地工作。
我更喜欢只使用ggplot.

在此处输入图片说明

样本数据:

df <- head(mtcars, 5)
Run Code Online (Sandbox Code Playgroud)

示例图:

df %>% 
  ggplot(aes(gear, disp)) + 
  geom_bar(stat = "identity") + 
  facet_grid(~am + carb,
             space = "free_x", 
             scales = "free_x") +
  ggplot2::theme(
    panel.spacing.x = unit(0,"cm"), 
    axis.ticks.length=unit(.25, "cm"), 
    strip.placement = "outside",
    legend.position = "top",
    legend.justification = "center",
    legend.direction = "horizontal",
    legend.key.size = ggplot2::unit(1.5, "lines"),
    # switch off the rectangle around symbols
    legend.key = ggplot2::element_blank(),
    legend.key.width = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-grid

4
推荐指数
1
解决办法
392
查看次数

将带有facet_grid的ggplot2对象的标题移动到中间

我有以下数据框:

              ML Algorithm Option  Coeff  Lower  Upper
1  Random Forest    Algo_1  Opt_1  0.021 -0.124  0.166
2          Lasso    Algo_1  Opt_1  0.130 -0.012  0.273
3        XGBoost    Algo_1  Opt_1 -0.052 -0.211  0.108
4     Neural Net    Algo_1  Opt_1  0.114 -0.009  0.238
5  Random Forest    Algo_1  Opt_2  0.116 -0.033  0.264
6          Lasso    Algo_1  Opt_2  0.158  0.019  0.297
7        XGBoost    Algo_1  Opt_2 -0.260 -0.508 -0.012
8     Neural Net    Algo_1  Opt_2  0.035 -0.100  0.170
9  Random Forest    Algo_2  Opt_1  0.028 -0.117  0.172
10         Lasso    Algo_2  Opt_1  0.134 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-grid

3
推荐指数
1
解决办法
62
查看次数

标签 统计

ggplot2 ×8

r ×8

facet ×3

facet-grid ×3

gtable ×2

boxplot ×1

grob ×1

heatmap ×1

label ×1

r-grid ×1

sas-jmp ×1