首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R在表达载体中添加新行

R在表达载体中添加新行
EN

Stack Overflow用户
提问于 2022-11-24 18:54:49
回答 2查看 50关注 0票数 1

我有一个包含四个组的方格图,我想为每个组添加一个名称,它由两行组成的组成,包含下标。因此,我尝试使用bquote()

代码语言:javascript
复制
#sample data
groups = matrix(1:40,ncol=4)

#create group names
names = as.expression(sapply(1:4, function(x){
  letter = LETTERS[x]
  name = bquote(atop(.(letter),num[.(x)] == .(x)))
  return(name)
}))

boxplot(groups, names = names)

这给了我以下的结果:

我几乎对结果感到满意。然而,atop()有一些奇怪的间距,因此顶部的行(带有字母A)位于外部边界的顶部。我找不到解决这个问题的办法。

我还尝试了以下几点:

代码语言:javascript
复制
#Alternative Approach (not working)
names = parse(text=paste(LETTERS[1:4],"\n","num[", 1:4, "]", sep=""))

在本例中,添加"\n“(新行)只会将names变量从长度4分解为长度8。

我完全不知道如何解决这个看似简单的问题。帮助是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2022-11-24 20:23:44

另一种选择是将此图转换为ggplot2

代码语言:javascript
复制
library(tidyverse)

groups = matrix(1:40,ncol=4)

#create group names
names = as.expression(sapply(1:4, function(x){
  letter = LETTERS[x]
  name = bquote(atop(.(letter),num[.(x)] == .(x)))
  return(name)
}))


as.data.frame.matrix(groups) |>
  `colnames<-`(LETTERS[1:4]) |>
  pivot_longer(everything()) |>
  ggplot(aes(name, value))+
  geom_boxplot(fill = "grey")+
  scale_x_discrete(labels = names)+
  labs(x = "", y = "")+
  theme_bw()+
  theme(panel.grid = element_blank())

票数 1
EN

Stack Overflow用户

发布于 2022-11-25 13:29:15

勾标与X轴的距离由下面示例中的mgp图形参数- 2.5的中间数控制。有关详细信息,请参阅?par。根据你的口味调整2.5。请注意,可以通过将names构造为字符向量,然后解析它来简洁地计算它。

代码语言:javascript
复制
fmt <- 'atop("%s", num[%dL] == %dL)'
names <- parse(text = sprintf(fmt, head(LETTERS, 4), 1:4, 1:4))

但是,下面的代码与问题中的代码相同,但添加的两行par除外。最后一个par行只是重置图形参数,并提供了一些防御能力,以防有更多的绘图,但如果没有更多的绘图,则以放弃这一点为代价可以省略。

代码语言:javascript
复制
groups = matrix(1:40,ncol=4)

#create group names
names = as.expression(sapply(1:4, function(x){
  letter = LETTERS[x]
  name = bquote(atop(.(letter),num[.(x)] == .(x)))
  return(name)
}))

opar <- par(mgp = c(3, 2.5, 0))
boxplot(groups, names = names)
par(opar)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74565179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档