热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ggplot2-手动将boxplotfacet标签指定为符号/数学表达式

如何解决《ggplot2-手动将boxplotfacet标签指定为符号/数学表达式》经验,为你挑选了1个好方法。

我有一个tibble名为的数据框my_data,如下所示:

> my_data
# A tibble: 60 x 4
   SPECIES       simulation_id psi_hat p_hat
                        
 1 Grey squirrel            74   0.527 0.306
 2 Grey squirrel           102   0.526 0.316
 3 Grey squirrel           142   0.527 0.309
 4 Grey squirrel           121   0.527 0.309
 5 Grey squirrel            25   0.526 0.317
 6 Grey squirrel            50   0.527 0.309
 7 Grey squirrel            67   0.491 0.326
 8 Grey squirrel            19   0.527 0.306
 9 Grey squirrel           174   0.527 0.302
10 Grey squirrel            46   0.527 0.309
# ... with 50 more rows

有三种不同SPECIESmy_data.

我想为每个变量psi_hatp_hat变量制作一个箱形图SPECIES.我开始准备我的tibble喜欢:

my_data_plot <- my_data %>% 
    gather("psi_hat", "p_hat", key = "parameter", value = "estimate")

然后将其绘制成如下:

ggplot(data = my_data_plot, mapping = aes(x = SPECIES)) +
    geom_boxplot(mapping = aes(y = estimate)) + 
    facet_grid(. ~ parameter)

这给了我:

在此输入图像描述

我现在要做的是将facet标记为实际的希腊符号而不是例如"psi_hat",以便"psi_hat"将得到expression(hat(psi))与facet标签等效的符号.

我知道facet_grid我可以使用labeller = label_parse,但这意味着我的变量名必须是实际表达式,但是当变量名必须是函数调用(即hat(psi))时,我不知道如何做到这一点.例如,我试过my_data <- my_data %>% rename(hat(psi) = "psi_hat")这给了我这个错误:

Error: unexpected '=' in:
"my_data <- my_data %>% 
    rename(hat(psi) ="

我也考虑过labeller = bquote,但是当我在这个图中只有列时,这似乎要求我指定行列.

所以,我想知道是否有需要或方式为我手动定义这些方面标签的表达式?或者是否有更多的算法实现这一目标?

谢谢!

这里是dput()my_data:

structure(list(SPECIES = c("Grey squirrel", "Grey squirrel", 
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel", 
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel", 
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel", 
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel", 
"Grey squirrel", "Grey squirrel", "Red fox", "Red fox", "Red fox", 
"Red fox", "Red fox", "Red fox", "Red fox", "Red fox", "Red fox", 
"Red fox", "Red fox", "Red fox", "Red fox", "Red fox", "Red fox", 
"Red fox", "Red fox", "Red fox", "Red fox", "Red fox", "Roe Deer", 
"Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", 
"Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", 
"Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", 
"Roe Deer"), simulation_id = c(74L, 102L, 142L, 121L, 25L, 50L, 
67L, 19L, 174L, 46L, 162L, 31L, 199L, 147L, 163L, 18L, 170L, 
172L, 106L, 157L, 158L, 200L, 187L, 103L, 144L, 77L, 78L, 139L, 
75L, 57L, 171L, 195L, 90L, 136L, 109L, 30L, 152L, 97L, 74L, 8L, 
161L, 73L, 130L, 151L, 150L, 184L, 198L, 177L, 97L, 88L, 123L, 
190L, 83L, 75L, 143L, 159L, 103L, 16L, 200L, 2L), psi_hat = c(0.526863413764263, 
0.525835491514182, 0.526515540307052, 0.526515540305866, 0.525668605170743, 
0.526515540309525, 0.491205525300549, 0.526863413760793, 0.527216807861263, 
0.526515540305866, 0.526515540306427, 0.526003604543373, 0.526003604547465, 
0.527039406294591, 0.491512271725946, 0.526343604414775, 0.526515540311415, 
0.490421555053814, 0.526003604541449, 0.526688801109048, 0.79766843868635, 
0.801911295111649, 0.797668438685209, 0.79766843868356, 0.736091175845588, 
0.801911294988272, 0.797668438684876, 0.797668438686537, 0.764665429923081, 
0.806326437262252, 0.769630414385322, 0.806326437300003, 0.733141462334417, 
0.801911295128621, 0.777085591061084, 0.801911295171974, 0.703578316906639, 
0.777085591642251, 0.793615265014951, 0.806326437459794, 0.662677377511043, 
0.701654360968483, 0.704629679152389, 0.70622149033349, 0.663754148939585, 
0.704629679094459, 0.705416487515374, 0.677464341430293, 0.707045218951227, 
0.662338556587023, 0.674456696561803, 0.701654360967044, 0.639650521202062, 
0.625380503760432, 0.704629679094605, 0.664561357366103, 0.704629679143759, 
0.636859548660175, 0.66375414894085, 0.707045219029558), p_hat = c(0.305763297214646, 
0.315819064091298, 0.309115591855344, 0.309115591855175, 0.317494717397372, 
0.309115591855145, 0.326303719905328, 0.305763297214592, 0.302410595448716, 
0.309115591855175, 0.309115591855139, 0.314143327866378, 0.314143327866402, 
0.304086998925611, 0.322825888575185, 0.310791594807592, 0.309115591855151, 
0.335654773573103, 0.314143327866529, 0.307439493743849, 0.0690109229482788, 
0.0677020110780009, 0.0690109229483345, 0.0690109229474338, 0.0744703724155286, 
0.0677020110840996, 0.0690109229257095, 0.0690109229256593, 0.0704604468308165, 
0.0663903378649822, 0.0691283355131073, 0.0663903378091044, 0.0737444081467713, 
0.0677020110873479, 0.0665479524846632, 0.0677020110750217, 0.073966658329169, 
0.0665479525245426, 0.0703192747621257, 0.0663903375835434, 0.166196509352831, 
0.157146399287494, 0.152026850762839, 0.14946227707946, 0.163675003941755, 
0.152026850344473, 0.150744974403108, 0.15740696035152, 0.148178744896067, 
0.167783160277052, 0.162569260757996, 0.157146399287514, 0.162501076719809, 
0.177160578693552, 0.152026850344548, 0.162149934290892, 0.152026850679299, 
0.168221557280052, 0.163675003941561, 0.148178745461308)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -60L))

AndS... 5

你可以试试这个.因为您的数据是长格式的,所以我使用case_when一个表达式来重命名变量,以便由贴标机读取

library(tidyverse)

df %>% 
    gather(key = "parameter", value = "estimate", -SPECIES, -simulation_id) %>%
  mutate(parameter = case_when(
    parameter == "psi_hat" ~ "hat(psi)",
    parameter == "p_hat" ~ "hat(p)"
  )) %>%
  ggplot(aes(x = SPECIES)) +
    geom_boxplot(mapping = aes(y = estimate)) + 
    facet_grid(. ~ parameter, labeller = label_parsed)

由reprex包(v0.2.0)于2018-08-18创建.



1> AndS...:

你可以试试这个.因为您的数据是长格式的,所以我使用case_when一个表达式来重命名变量,以便由贴标机读取

library(tidyverse)

df %>% 
    gather(key = "parameter", value = "estimate", -SPECIES, -simulation_id) %>%
  mutate(parameter = case_when(
    parameter == "psi_hat" ~ "hat(psi)",
    parameter == "p_hat" ~ "hat(p)"
  )) %>%
  ggplot(aes(x = SPECIES)) +
    geom_boxplot(mapping = aes(y = estimate)) + 
    facet_grid(. ~ parameter, labeller = label_parsed)

由reprex包(v0.2.0)于2018-08-18创建.


推荐阅读
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
author-avatar
无敌鸟的秋天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有