如何从R中的facet_grid图中获得真实比例?

2023-12-04

我正在尝试添加其中出现的标题post.

因此,当我使用时,我需要绘图的真实比例(x 和 y 轴)facet_grid。我知道我可以使用layer_data,因为它保存了图中的所有内容...但是,它并不真正准确,因为当我尝试使用来建立限制时min and max从该输出来看,情节发生了变化。

这里有一个例子:

library(ggplot2)
library(dplyr)

val1 <- c(2.1490626,2.2035281,1.5927854,3.1399245,2.3967338,3.7915825,4.6691277,3.0727319,2.9230937,2.6239759,3.7664386,4.0160378,1.2500835,4.7648343,0.0000000,5.6740227,2.7510256,3.0709322,2.7998003,4.0809085,2.5178086,5.9713330,2.7779843,3.6724801,4.2648527,3.6841084,2.5597235,3.8477471,2.6587736,2.2742209,4.5862788,6.1989269,4.1167091,3.1769325,4.2404515,5.3627032,4.1576810,4.3387921,1.4024381,0.0000000,4.3999099,3.4381837,4.8269218,2.6308474,5.3481382,4.9549753,4.5389650,1.3002293,2.8648220,2.4015338,2.0962332,2.6774765,3.0581759,2.5786137,5.0539080,3.8545796,4.3429043,4.2233248,2.0434363,4.5980727)
val2 <- c(3.7691229,3.6478055,0.5435826,1.9665861,3.0802654,1.2248374,1.7311236,2.2492826,2.2365337,1.5726119,2.0147144,2.3550348,1.9527204,3.3689502,1.7847986,3.5901329,1.6833872,3.4240479,1.8372175,0.0000000,2.5701453,3.6551315,4.0327091,3.8781182)

df1 <- data.frame(value = val1)   
df2 <- data.frame(value = val2)   

data <- bind_rows(lst(df1, df2), .id = 'id')
data$Sex <- rep(c("Male", "Female"), times=84/2)

p <- data %>% 
  ggplot(aes(value)) +
  geom_density(lwd = 1.2, colour="red", show.legend = FALSE) +
  geom_histogram(aes(y=..density.., fill = id), bins=10, col="black", alpha=0.2) +
  facet_grid(id ~ Sex ) +
  xlab("type_data") + 
  ylab("Density") +
  ggtitle("title") +
  guides(fill=guide_legend(title="legend_title")) +
  theme(strip.text.y = element_blank())
  
p

image1

plot_info <- layer_data(p)
> min(plot_info$density)
[1] 7.166349e-09
> max(plot_info$density)
[1] 0.5738021

正如您在图中看到的,y 轴从 0 开始,结束时大约为 0.7 左右。然而,最大密度为0.57。

如果我尝试使用来自的信息layer_data:

p + coord_cartesian(clip="off", ylim=c(min(plot_info$density), max(plot_info$density)), 
                  xlim = c(min(plot_info$x), max(plot_info$x)))

剧情彻底改变。

enter image description here

有谁知道我怎样才能得到秤ggplot2 and facet_grid正在使用?我需要密度(y 轴)的信息和 x 轴的信息。


是的,要直接获取秤,请使用layer_scales(p),它为您提供了轴的范围,而不仅仅是数据的范围,这是您从layer_data(p)

p + coord_cartesian(clip = "off", 
                    ylim = layer_scales(p)$y$range$range, 
                    xlim = layer_scales(p)$x$range$range)

enter image description here

或者,将此问题与上一个问题结合起来,在绘图面板之外添加文本标签,结果可能类似于:

p + coord_cartesian(clip = "off", 
                    ylim = layer_scales(p)$y$range$range, 
                    xlim = layer_scales(p)$x$range$range) +
  geom_text(data = data.frame(value = c(0, 6), id = c("df2", "df2"),
                              Sex = c('Female', 'Male')),
            aes(y = -0.15, label = c('Female', 'Male')))

enter image description here

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

如何从R中的facet_grid图中获得真实比例? 的相关文章

  • 使用格式表过滤数据框

    样本数据 修改自formattablegithub 文档 df lt data frame id 1 10 name c Bob Ashley James David Jenny Hans Leo John Emily Lee age c
  • 使用 Rgraphviz 中的 pos 参数来固定节点位置

    基于这个问题当弧与另一弧重叠时自动弯曲 https stackoverflow com questions 45721802 automatically curving an arc when it is overlapping with
  • 基于两列对数据框中的行进行求和[重复]

    这个问题在这里已经有答案了 我想添加一列的值 将它们按两列分组 我找到了如何在一列上执行此操作 但无法弄清楚如何在两列上执行此操作 例如 如果我有以下数据框 x c a a b b c c a a b b c c a a b b c c y
  • 如何扩展 ggplot y 轴限制以包含最大值

    通常 在图中 Y 轴值标签会在绘制的最大值下方被截断 For example library tidyverse mtcars gt ggplot aes x mpg y hp geom point 我知道scale y continous
  • 计算横截面积作为高度的函数

    我试图弄清楚如何计算不同水位的河流横截面的充满水的面积 对于横截面 我有 5 m 宽河流上每 25 cm 的深度 并且可以根据之前很好回答的问题来计算面积计算不同高度的横截面积 https stackoverflow com questio
  • 写入抓取数据的 csv 文件时如何拆分项目名称

    我有兴趣使用 R 从网上抓取的数据创建 csv 或类似的 Excel 兼容文件 到目前为止 我通过执行以下操作来存储数据 require textreadr spiegel lt read html http www spiegel de
  • 计算网格中物种的出现次数

    我有大约500 000点R美国各地候鸟物种的出现数据 我试图在这些点上覆盖网格 然后计算每个网格中出现的次数 统计完计数后 我想将它们引用到网格单元 ID 在 R 中 我使用了over 函数只获取范围图中的点 这是一个形状文件 Read i
  • ggplot2 geom_function 可以跨 arg 值进行分面吗?

    我想通过分面 geom function 创建 ggplot2 图 以便函数的参数在网格中变化 例如像这样的东西 my function lt function x par if par 1 return sin x else return
  • OpenStreetMap 不显示在 RStudio 中(使用 R 3.2.1)

    我正在使用来自的代码here https rstudio github io leaflet library leaflet m lt leaflet gt addTiles gt addMarkers lng 174 768 lat 36
  • 挑战:优化取消列出[简单]

    因为 SO 最近有点慢 所以我发布了一个简单的问题 如果大鱼们能在这场比赛中留在替补席上并给新秀们一个回应的机会 我将不胜感激 有时我们的对象具有大量的大列表元素 向量 您如何将这个对象 取消列出 到单个向量中 证明你的方法比unlist
  • 与heroku配合使用的统计引擎

    我有一个 Heroku Rails 应用程序 需要处理一些重要的数字 并且我需要使用像 R 这样的统计库 更糟糕的是 MatLab 我正在寻找以下任何问题的答案 是否有不需要二进制文件的功能齐全的统计包 GEM 是否可以将 R 二进制文件作
  • 使用 xtable 对乳胶输出的表进行排序

    我正在尝试生成一个排序表并导出到乳胶中 然而 xtable 似乎无法处理排序表 建议 a lt sample letters 500 replace T b lt table a c lt sort table a decreasing T
  • Dplyr 过滤多个类似条件

    我正在尝试在 dplyr 中做一个过滤器 其中的列就像某些观察结果 我可以使用 sqldf 作为 Test lt sqldf select from database Where SOURCE LIKE ALPHA OR SOURCE LI
  • 如何在 R 中创建纯 ascii 表作为输出,类似于 MySQL 风格?

    我正在尝试为 R 找到一个输出的函数data frameMySQL 风格的 ascii 表中的对象如下 id var1 var2 1 asdf g 2 asdf h 3 asdf j 有这样的功能吗 至少有两个工具可以做到这一点 csvfi
  • 省略 RColorBrewer 调色板上较亮的颜色以在 ggplot2 中使用

    我想在 RColorBrewer 的 Oranges 调色板中使用较深的颜色 以便在我的 ggplot 条形图 中使用 然而我却做不到 帮助 下面是示例代码 my palette brewer pal n 9 Oranges 4 9 Bar
  • 有没有一种明智的方法可以在 R 中执行诸如文档字符串之类的操作?

    这不仅仅是一个编码风格问题 如果您了解 python 我认为 Ruby 也有类似的东西 您可以在函数中拥有文档字符串 这样您就可以通过发出 help 命令轻松获取该字符串 例如 def something t None Do somethi
  • 包什么时候需要为它自己的对象使用 :::

    考虑这个 R 包有两个函数 一个是导出函数 另一个是内部函数 hello R export hello lt function internalFunctions hello internal 你好 内部 R hello internal
  • 了解日期并使用 R 中的 ggplot2 绘制直方图

    主要问题 当尝试使用 ggplot2 制作直方图时 我无法理解为什么日期 标签和中断的处理无法像我在 R 中预期的那样工作 我在找 我的约会频率的直方图 刻度线位于匹配条下方的中心 日期标签在 Y b format 适当的限制 最小化网格空
  • 当我添加形状时,分组哑铃图变得不稳定

    我有以下数据显示白人与黑人在各个领域的一致性百分比 我想创建一个分组哑铃图 其中国家值和州值彼此相邻 以便于比较 Domain c A B C D E F G A B C D E F G A B C D E F G A B C D E F
  • 如何在 R 中创建“堆叠瀑布”图表?

    I was able to find several packages to create a waterfall chart in R which look like this But I could not find a way to

随机推荐

  • 如何为Android创建收件箱样式(带有未读计数)小部件?

    我正在尝试为我的 Android 应用程序创建一个小部件 我希望它是一个单元格 但右上角有注释 类似于流行的小部件 在右上角显示未读电子邮件 短信计数 这似乎是一个常见的尝试和做的事情 但我找不到任何如何构建它的示例 我该怎么做呢 或者有什
  • php变量作为条件赋值

    我想知道如何将条件赋值给 php 变量并在其他条件中使用它 如下所示 cndtnal x 4 if y 5 cndtnal print Hello World Thanks 您应该尽量避免使用eval尽可能多 但如果你想使用它 那么你可以这
  • reset() - “严格标准:只有变量应该通过引用传递”[重复]

    这个问题在这里已经有答案了 我目前正在为客户迁移一个网站 据我所知 他们的旧主机肯定使用的是旧版本的 PHP 该网站目前正在其当前主机上工作 我正在努力将其移至新主机 但出现以下错误 PHP 严格标准 第 17 行 home parcelt
  • 与flock()函数有关的问题

    我有一个关于如何flock 有效 特别是在 python 中 我有一个打开串行连接的模块 通过os open 我需要确保这个线程的安全 当使用相同的模块工作时 它很容易使其线程安全threading Lock 但是如果模块从不同的地方导入
  • viewForSupplementaryElementOfKind 没有被调用

    我已经声明了如下所示的集合视图 lazy var collectionView UICollectionView let layout UICollectionViewFlowLayout layout itemSize UICollect
  • 循环遍历目录中的子目录

    我有一个目录 文件夹 该目录内有许多子目录 每个子目录内都有许多图像 我想循环遍历 文件夹 目录中的子目录 然后循环遍历每个目录中的所有图像以将图像导出到 Excel 并将每个子目录中的图像放在一个 Excel 工作表中 例如如果我有十个子
  • 从最小化窗口捕获图像

    正如标题所示 我想从最小化的窗口捕获图像 这可能吗 我用捕捉图像来自 MSDN 并且它可以工作 除非窗口被最小化 我尝试的一种解决方案是将其最大化 捕获图像 然后将其恢复到原始状态 唯一的问题是动画看起来很丑 我想找到替代方案 这是我尝试的
  • 在 Laravel 中将对象转换为数组[重复]

    这个问题在这里已经有答案了 我查询了这样的数据库 它给了我一个数组 foreach oid as orderid orderdetailData DB table order details gt join orders order det
  • 日期时间转换还是转换? [复制]

    这个问题在这里已经有答案了 选择什么 Cast or Convert对于日期时间 Microsoft SQL Server 我已经看过了MSDN 规范 乍一看 除了语法之外 似乎没有什么区别 CAST 的语法 CAST expression
  • 在 ASP.Net 中使用客户端证书进行数字签名

    我正在尝试使用私钥对信息进行数字签名 我知道如何在 Net 桌面客户端应用程序中执行此操作 但不确定如何在 ASP Net 中执行此操作 它将在使用 IE8 的 Intranet 上使用 如果是通过 ASP Net 完成的 我猜测当用户在访
  • VBA:通配符 * - 查找以数字结尾的文件 - 查找错误的文件

    我是Windows用户 如果我将条件设置为 1 jpg 那么它会列出一个以 2 结尾的文件 如果我将条件设置为 2 jpg 或 3 jpg 则效果很好 Sub prob Dim x As String x Dir C Users Envir
  • 在 SQL 数据库中存储纬度和经度数据时应使用什么数据类型? [复制]

    这个问题在这里已经有答案了 在符合 ANSI SQL 的数据库中存储纬度或经度数据时 哪种数据类型最合适 应该float被使用 或者decimal 或者 我知道 Oracle MySql 和 SQL Server 添加了一些专门用于处理地理
  • 有什么方法可以使用 C# 在 Windows 中关闭“互联网”吗?

    我正在寻找 C 中 API 的指针 这些指针将允许我通过打开和关闭连接来控制我的 Internet 连接 我想编写一个小控制台应用程序 它允许我打开和关闭访问权限 从而提高生产力 以及在此过程中学习一些东西 谢谢 如果您使用的是 Windo
  • 使用 setp 将长 y 标签包装在 matplotlib 紧凑布局中

    我一直在尝试在代码中包装长标签的文本 我尝试了之前建议的 textwrap 方法here 但我的代码通过使用从 csv 导入的数组定义 yticklabelspyplot setp 方法 我在用着tight layout 否则进行格式化 所
  • 如何在 MVC.NET 项目中使用 EmguCV

    我在 WinForm 中使用 Emgu 并且工作正常 现在我尝试使用 emguCV 创建一个 mvc net 项目 但不起作用 出现错误 Emgu CV CvInvoke 的类型初始值设定项引发异常 我尝试使用官方网站的解决方案emguCV
  • 将列文本旋转 60 度

    如何将 iReport 中的报表的列文本旋转 60 度 据我所知 iReport 工具本身不支持旋转文本 这让你几乎没有什么选择 正如我已经概述的那样 解决方案 1 使用图形编辑器手动创建文本已旋转的静态图像 例如Inkscape 将该图像
  • Java中String和StringBuffer有什么区别?

    Java中String和StringBuffer有什么区别 字符串有最大大小吗 String用于操作不可更改的字符串 只读且不可变 StringBuffer用于表示可以修改的字符 性能方面 StringBuffer执行串联时速度更快 这是因
  • 具有多个 ServerAlias 的 Apache2 动态虚拟主机

    我正在尝试设置动态虚拟主机 但遇到了一些麻烦 它不允许我设置多个 ServerAlias
  • 如何在 C# 中使用 WMI 查询从 UWF 获取注册表和文件排除项

    我想使用 WMI 从 UWF 中获取所有注册表排除和文件排除 我已经尝试从 UWF RegistryFilter 类调用 GetExclusions 方法 但没有成功 我期待着一个工作示例代码 提前感谢您的帮助 困难的部分是从方法结果中读取
  • 如何从R中的facet_grid图中获得真实比例?

    我正在尝试添加其中出现的标题post 因此 当我使用时 我需要绘图的真实比例 x 和 y 轴 facet grid 我知道我可以使用layer data 因为它保存了图中的所有内容 但是 它并不真正准确 因为当我尝试使用来建立限制时min