geom_boxplot():强制出现空级别

2024-01-17

我无法找到一种方法来要求 ggplot2 在箱线图中显示空级别,而不用实际缺失值填充我的数据框。 这是可重现的代码:

# fake data
dftest <- expand.grid(time=1:10,measure=1:50)
dftest$value <- rnorm(dim(dftest)[1],3+0.1*dftest$time,1)

# and let's suppose we didn't observe anything at time 2
# doesn't work even when forcing with factor(..., levels=...)
p <- ggplot(data=dftest[dftest$time!=2,],aes(x=factor(time,levels=1:10),y=value))
p + geom_boxplot()

# only way seems to have at least one actual missing value in the dataframe
dftest2 <- dftest
dftest2[dftest2$time==2,"value"] <- NA
p <- ggplot(data=dftest2,aes(x=factor(time),y=value))
p + geom_boxplot()

所以我想我错过了一些东西。在处理平衡实验时,这不是问题,其中这些丢失的数据可能在数据框中是明确的。但例如,对于队列中观察到的数据,这意味着将数据与未观察到的组合的缺失值进行插补。


我们可以在合适的比例函数中控制中断,在这种情况下scale_x_discrete。确保使用参数drop = FALSE:

p <- ggplot(data = dftest[dftest$time != 2, ], 
            aes(x = factor(time, levels = 1:10), y = value))
p + geom_boxplot() + 
  scale_x_discrete("time", breaks = factor(1:10), drop = FALSE)

我喜欢在将数据发送到之前进行数据处理ggplot。我认为这使代码更具可读性。我自己就是这样做的,但结果是一样的。但请注意,ggplot缩放变得更简单,因为您不必指定中断:

dfplot <- dftest[dftest$time != 2, ]
dfplot$time <- factor(dfplot$time, levels = 1:10)

ggplot(data = dfplot, aes(x = time, y = value)) +
  geom_boxplot() + 
  scale_x_discrete("time", drop = FALSE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

geom_boxplot():强制出现空级别 的相关文章

随机推荐

  • 如何在 Android 应用程序中从 Web 服务器获取数据? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在 Android 应用程序中从
  • Django - 将模型代码与数据库进行比较

    我维护一个 Django 项目 其中的数据库有几个与实际数据库不同步的模型约束 因此 例如 某些模型字段设置了 null False 但数据库允许相应的数据库列为 NULL 我很好奇 Django 或第三方 Python 脚本中是否有一个实
  • 如何为操作项(包括溢出菜单)的弹出窗口设置自定义颜色?

    背景 我正在努力为应用程序添加一些材料设计风格 因此我为操作栏和状态栏选择了不同的颜色 问题 为此 应用程序的主题是 Theme AppCompat Light DarkActionBar 并添加此主题以隐藏操作栏 因为我需要将其作为工具栏
  • 如何通过 Google Contacts API 创建新联系人?

    我正在创建一个新联系人 如中所述谷歌通讯录 API https developers google com google apps contacts v3 具体来说 我做了一个POST to https www google com m8
  • BigQuery - 从分区表中删除行

    我在 BigQuery 上有一个按日分区的表 当我尝试使用如下查询从表中删除某些行时 DELETE FROM MY DATASET partitioned table WHERE id 2374180 我收到以下错误 错误 分区表尚不支持
  • 需要在 Visual Studio 2010 中进行高效调试

    我经常使用Debug gt Exceptions gt check CLR Exceptions在调试会话期间 有时 会抛出并处理异常 但我真的想找到异常的来源 为了在不看到我不关心的第一次异常的情况下执行此操作 我启动我的应用程序 然后检
  • 使用 HTTPS 代替 HTTP

    我有一个用户必须登录的网站 我想使用 HTTPS 因此与服务器建立安全加密连接以检查用户名和密码 目前在我的服务器上我有一个名为 httpdocs 的文件夹 这是我的网站的存储位置 我还有一个名为 httpsdocs 的文件夹 现在正如我所
  • MongoDB updateMany,动态过滤字段

    使用 updateMany filter update option 时 如何为每个文档设置动态过滤字段 我有一系列这样的文档 time 1 data time 2 data time 3 data 每个都有一个唯一的时间戳 如果时间戳已经
  • 从另一个Java程序编译并运行Java程序[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 使用 CompileAndRun 类 我现在可以编译并运行我的 HelloWorld 类 现在我想用它来运行一个需要用户输入的程序 这可以是
  • 了解 MongoDB Aggregate 和 GroupBy

    我正在尝试在 MongoDB 中执行查询 首先按 id 进行分组 然后按降序排序 我这里有一个函数式 LINQ 表达式 var list this GetPackages ToList list list OrderByDescending
  • 为什么在使用自定义元素时会出现内部 Dartium 异常?

    我在控制台中看到此错误 Exception InvalidStateError Internal Dartium Exception PolymerDeclaration registerType package polymer src d
  • Maven:附加多个工件

    我有一个 Maven 项目 它使用一些自定义 jar 在任何存储库中都找不到 为了将它们与 Maven 构建一起添加 我在 Maven 中使用 Attach artifact 目标 以下是我的 pom 文件
  • 如何漂亮地打印 Golang 结构? [复制]

    这个问题在这里已经有答案了 我正在解组一个结构 我希望它以格式化的方式打印它 我的代码 https play golang org p D0KwGP6Cxa0 https play golang org p D0KwGP6Cxa0 当前产生
  • 宁静的API服务

    我正在寻找一项服务 可以用来调用基于 Web 的 REST API 基本上我想在 app init 上启动一个服务 然后我希望能够要求该服务请求一个 url 并返回结果 与此同时 我希望能够显示进度窗口或类似的东西 我目前已经创建了一个使用
  • 用酶测试连接的组件

    我正在学习采取本次测试课程 https www udemy com react testing with jest and enzyme 通过设置来测试连接的组件store factory测试助手 创建一个与我们商店的配置相匹配的测试商店
  • 如何向 javascript 类添加回调函数?

    javascript 中的以下代码给了我错误 this callback 不是一个函数 function ajaxRequest var httpObject this open open this callback function fu
  • elasticsearch允许具有不同身体数据的重复ID

    我目前正在尝试将我们的 elasticsearch 数据迁移到 2 0 兼容 即 字段名称中没有点 为从 1 x 升级到 2 x 做准备 我编写了一个程序 它 批量 运行位于单节点集群中的数据 并重命名字段 使用批量 API 重新索引文档
  • 获取 .NET Core JSON Body 作为动态对象

    我的 ASP NET Core 端点接受 JSON 形式作为其输入 并调用需要动态参数的方法 我试图像这样调用该方法 HttpPost public IActionResult InitializeAction FromBody dynam
  • iPad Safari 将鼠标事件映射到图像映射中的触摸事件

    我的网站广泛使用图像地图 这些图像是中世纪手稿的页面 AREA 标签的 mouseOver 事件附加了一个工具提示 它显示了鼠标悬停在其上的行的古代文字的现代印刷转录 我刚刚在苹果商店的 iPad 上查看了我的网站 iPad 在很多方面使用
  • geom_boxplot():强制出现空级别

    我无法找到一种方法来要求 ggplot2 在箱线图中显示空级别 而不用实际缺失值填充我的数据框 这是可重现的代码 fake data dftest lt expand grid time 1 10 measure 1 50 dftest v