沿一个面轴解析的标签,沿另一面轴未解析的标签

2024-02-15

我正在尝试为一个场景找到一种方便的解决方案,其中一个分面维度有多行纯文本标签,而其他分面维度有绘图数学式的数学表达式。多行条带标签的各种解决方案(例如here https://stackoverflow.com/questions/13198170/combining-expression-with-n)对于我的情况来说有点笨重;我有因素标签snake_case并希望能够以编程方式将它们全部转换为多行版本,而无需陷入困境substitute(bquote(parse(...))地狱(尽管沿着这些思路的解决方案也将被接受)。

我的方向是(尝试)编写一个适用的自定义贴标机label_parsed()或者根据标签是否包含换行符保留标签。我似乎无法获得解析内容的正确语法。多行未解析内容的当前结构是

List of 1
 $ : chr [1:4] "peak\ntime" "peak\nvirulence" "equilibrium\nvirulence" "relative\npeak"

这是有效的,但是解析的东西是

List of 3
 $ :List of 1
  ..$ :  expression(beta)
 $ :List of 1
  ..$ :  expression(gamma)
 $ :List of 1
  ..$ :  expression(x[1])

但事实并非如此。正在申请unlist(r) and unlist(r,recursive=FALSE)对于这个结构都会给出错误消息......

结果(如下所示)是所有三个解析的标签都堆积在第一列中......

?label_parsed says

返回值必须是一个矩形列表,其中每个“行” 表征单个方面。列表元素可以是 字符向量或绘图数学表达式列表。当多个 返回元素,它们显示在自己的新行上 (即,每个面都有一条多行标签)。

设置:加载包,定义新旧标签

library(ggplot2); theme_set(theme_bw())
orig_sum_labs <- c("peak_time","peak_vir","eq_vir","rel_peak")
new_sum_labs <- c("peak time","peak virulence","equilibrium virulence",
                  "relative peak")
fake <- data.frame(f1=rep(orig_sum_labs,each=12),
                   f2=factor(rep(1:3,16),levels=1:3,
                             labels=c("beta","gamma","x[1]")),
                   x=rep(1:4,12),y=rep(1:4,12))

将换行符放入标签中:

nn <- gsub(" ","\n",new_sum_labs)
fake$f1 <- factor(fake$f1,levels=orig_sum_labs,labels=nn)

我的贴标机功能:

L <- function(labels,multi_line=TRUE) {
    r <- if (all(grepl("\n",labels[[1]]))) {
        list(as.character(labels[[1]]))
    } else {
        label_parsed(labels[[1]],multi_line=multi_line)
    }
    ## browser()
    return(r)
}
class(L) <- "labeller"

试试看:

ggplot(fake,aes(x,y))+geom_point()+
    facet_grid(f1~f2,labeller=L)

哎呀。这有点神奇(我很乐意接受这样的答案清楚地解释发生了什么事),但我设法解决了我的问题。在我上面的贴标机功能中,

label_parsed(labels[[1]],multi_line=multi_line)

不起作用,但是

label_parsed(labels,multi_line=multi_line)

作品...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

沿一个面轴解析的标签,沿另一面轴未解析的标签 的相关文章

  • 当按多列分组时,如何命名 dplyr 中的 group_split 列表

    我在 dplyr 中使用 group split 在分割了多个列后 我很难命名列表 当我们按一列分组时 我知道该怎么做here https stackoverflow com questions 57107721 how to name t
  • 使用 ggplot_build 和 ggplot_gtable 后使用 ggsave 保存图形

    我正在通过更改 ggplot build 生成的数据来修改使用 ggplot 构建的图表 原因类似于包括 geom boxplot 中填充美学中使用的缺失因子水平的空间 https stackoverflow com questions 1
  • xml2 包 (R) 中的 xml_find_all 函数未找到相关节点

    我使用 R 中的 xml2 包来访问 xml 数据 发现它在不同的 xml documents 上表现不同 在这个宠物的例子中 library xml2 doc lt read xml
  • 使用 gbuffer 在 R 中缓冲(地理)空间点

    我正在尝试缓冲数据集中半径为 100 公里的点 我正在使用该功能gBuffer从包装中rgeos 这是我到目前为止所拥有的 head sampledf postalcode lat lon city province 1 A0A0A0 47
  • 如何处理重叠的因子水平? (例如,生成表格和图表时)

    我面临一个数据集的问题重叠因素水平 我想按因素级别生成时间线 条形图和统计数据 但是 我希望因子水平是模棱两可的 这意味着属于多个级别的观察结果应该在图中出现多次 这是我的数据结构的示例 head lt c ID YEAR BRAZIL G
  • 网页抓取(R 语言?)

    我想获取中间栏中的公司名称this http www consumercomplaints in bysubcategory mobile service providers page 1 html页面 以蓝色粗体书写 以及登记投诉者的位置
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • R 的 dplyr 切片中的奇怪行为

    打电话时slice df i 在 R 的 dplyr 包中 如果我要求的行索引不存在 nrows lt i 它似乎返回除组中的第一行之外的所有行 就像我调用的那样slice df 1 例如 library dplyr c1 lt c a b
  • 如何转置 R markdown 文档中的表格?

    假设我打印一个名为summary table的数据框 如下所示 summary table data frame a c 1 2 3 b c 11 12 13 c c 21 22 23 d c 31 32 33 e c 41 42 43 f
  • R 中使用 randomForest 进行内存高效预测

    TL DR我想知道使用基于大型数据集 数百个特征 数十万行 构建的随机森林模型执行批量预测的内存有效方法 Details 我正在处理一个大型数据集 内存中超过 3GB 并且想要使用以下方法进行简单的二进制分类randomForest 由于我
  • 当添加列较少时追加到现有 SQLite 表,而不将数据库读入 R

    是否有一些简单的方法 无论是在 SQL 端还是在 R 端 将 data frame 附加到具有更多列的现有表 缺失的列应该用 NA 填充 如果它能够优雅地处理比表 1 列数更多的表 2 那么会加分吗 library RSQLite Crea
  • 用闪亮的 R 设计 DT 中的展开行按钮

    我正在尝试设计 DT 中可用的展开行按钮的样式 样式可用here https datatables net examples api row details html 我用于创建数据表的代码是 library DT datatable cb
  • R 中的 Mapdeck 包 - add_grid 似乎未渲染任何内容

    Problem The add gridR 中的函数mapdeck包很精彩 然而 遵循CRAN 文档 https cran r project org web packages mapdeck mapdeck pdf 我似乎无法获得任何数据
  • 如何使用 tidyr 将向量中字符串中的每个字符分隔到一列中

    我想将向量中的每个字符串分成列 但我做不到 library tidyr library dplyr df lt data frame x c abe bas dds eer df gt separate x c A B C sep 1 我想
  • 数据表中的 NA

    我有一个data table其中包含一些组 我对每个组进行操作 有些组返回数字 其他组返回NA 因为某些原因data table很难将所有东西重新组合在一起 这是一个错误还是我误解了 这是一个例子 dtb lt data table a 1
  • 粘贴两个 data.table 列

    dt lt data table L 1 5 A letters 7 11 B letters 12 16 L A B 1 1 g l 2 2 h m 3 3 i n 4 4 j o 5 5 k p 现在我想粘贴列 A 和 B 以获得一个新
  • 删除绘图轴值

    我只是想知道是否有一种方法可以消除 r 图中的轴值 分别是 x 轴或 y 轴 我知道axes false将摆脱整个轴 但我只想摆脱编号 删除 x 轴或 y 轴上的编号 plot 1 10 xaxt n plot 1 10 yaxt n 如果
  • R Leaflet:添加多边形时传递 popupOptions。

    Within addPolygons 有一个popup参数就像addPopups 功能 区别 我认为 是当弹出窗口创建时addPolygons 可以单击多边形内的任意位置来触发弹出窗口 但是如果addPopups 被使用 单个lng and
  • R 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • linux下无法安装Cairo包

    我在本地下载该软件包并尝试安装它 但出现此错误 R CMD INSTALL l usr local lib64 R library Cairo 1 5 1 tar gz 我得到他的错误 checking for PNG support in

随机推荐

  • C stat 结构没有 st_ctime 字段,只有 st_ctim

    我现在已经用谷歌搜索了大约两个小时 但找不到任何有帮助的答案 手册页中指定的 stat 定义表明存在 st mtime 字段 struct stat dev t st dev ID of device containing file ino
  • 如何在android中的另一个imageview上半重叠imageview

    如何将布局 XML 文件中的图像彼此重叠一半 如下图所示 只需您就可以使用RealtiveLayout和负边距
  • 跑步后如何清理有毒环境?

    我有以下内容tox ini file tox envlist flake8 py 35 36 37 38 keyring testenv usedevelop True install command pip install U opts
  • 如何使用 google 图表 api 创建直方图?

    除了使用柱形图并适当命名之外 是否可以在谷歌图表 API 中创建直方图 添加到 mattedgod 的答案中 柱形图can现在创建的条形间隔紧密 请使用以下选项 bar groupWidth 100
  • android-如何在与主线程不同的线程中运行服务?

    我正在尝试在 android 中开发一个应用程序 其中包含一个读取多个小时传感器值的服务 当我启动服务时 我的设备挂起 所有其他进程都变慢 为了解决这个问题 我尝试在单独的线程中启动服务 如下所示 但问题仍然存在 new Thread ne
  • FB Canvas 授权重定向将我踢出 FB

    我有一个 Canvas 应用程序 它允许用户首先查看它的全部内容 然后仅在他希望执行某些操作时才请求权限 当用户进入应用程序时 它会在不需要权限的情况下启动 我们提供一个 登录 链接 该链接将请求 这会导致 Facebook 徽标出现并带有
  • 表示语法中的语句终止换行符?

    许多编程语言都有以行结束符终止的语句 不过 通常情况下 如果解析器无法理解该行 则在语句中间允许使用行结束符 例如 a 3 4 将在 Ruby 和 Python 中解析为语句a 3 4 since a 3 没有任何意义 换句话说 换行符被忽
  • 如何获取管道运行ID

    我是 Azure 新手 我需要使用 C 查找 Azure 中管道的最新活动 RunID 我不想调用管道实例 只想获取最后一个活动的 RunID 当我尝试时 可以调用管道并获取 ID 任何人都可以帮助我吗 我发现执行此操作的方法是查询数据工厂
  • Python distutils,如何获取要使用的编译器?

    例如 我可以使用python setup py build compiler msvc or python setup py build compiler mingw32要不就python setup py build 在这种情况下默认编译
  • 如何使用 Lombok 在类构造函数中使用 @Lazy 注释?

    给定一个 AnimalService 类 public class AnimalService private DogService dogService private AnimalService Lazy DogService dogS
  • 在java中连接自动生成的字符串,中间使用空格分隔符

    我有一个字符串数组变量 其值不断变化 由此生成随机数组 这就是我所拥有的 String trans Utility GetColumnValue testdata k suggest text 2 The trans值不断变化 我如何将它与
  • Pine Script 当前价格指标

    有没有办法在 Pine Script 中创建反映股票当前价格的指标 我需要这个指标 因为我需要在蜡烛收盘前 当存在特定交叉时 输入订单 并且逐条提供回测数据 我认为指标可以让我做到这一点 如果没有 还有其他方法可以解决这个问题 我不是一个经
  • Android 片段复制

    我正在尝试 android Honeycomb 预览中的新类 但遇到了一个小问题 我正在制作一个棒球计分应用程序 我希望左侧的按钮 操作菜单 可以切换右侧的 操作窗格 我已将其设置为片段 我希望按钮的 onClickListener 调用片
  • 强制我的 MFC 应用程序在 Vista 上以管理员身份运行

    我有一个使用 Visual Studio 2008 构建的 MFC 应用程序 它需要在 W2K XP 2003 和 Vista 上运行 该应用程序写入注册表中的 HKLM 并且仅在以管理员身份运行时才能在 Vista 上运行 我的问题是 我
  • “decltype(auto)”变量有任何实际用例吗?

    既来自我的个人经验 也来自咨询诸如此类的问题的答案decltype auto 有哪些用途 https stackoverflow com questions 24109737 what are some uses of decltypeau
  • 创建仅包含特定文件夹内的类的类加载器

    我想加载特定的罐子ScriptEngineManager using 特定的类加载器 https docs oracle com javase 7 docs api javax script ScriptEngineManager html
  • 编写编程语言的建议? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于想要编写编程或脚本语言的人 您可以提供哪些建议 我 我不担心如何编程或设计编译器 而是担心如何使用工具和代码生成器快速开发编译器
  • 组件提供商和模块提供商的区别

    这是什么区别 Components providers财产和 Module providers 两者代表什么 EDIT 我有两个组件 LoginComponent and SigninComponent 另一方面 我正在使用UserServ
  • dc散点图绑定onClick事件

    我正在使用 dc scatterPlot 无法找到如何将鼠标单击绑定到散点图中的不同符号 数据点 我认为我应该首先访问 symbol 然后设置属性 但似乎无法访问散点图的 symbol 或者可能我完全错了 请建议 var individua
  • 沿一个面轴解析的标签,沿另一面轴未解析的标签

    我正在尝试为一个场景找到一种方便的解决方案 其中一个分面维度有多行纯文本标签 而其他分面维度有绘图数学式的数学表达式 多行条带标签的各种解决方案 例如here https stackoverflow com questions 131981