在ggplot2中用直方图叠加箱线图

2023-12-15

您好,我想使用 R 脚本创建一个类似的图表,如下所示:

enter image description here

取自:https://community.tableau.com/thread/194440

这是我在 R 中的代码:

library(ggplot2)

ifile <- read.table("C:/ifiles/test.txt", skip = 2, header = TRUE, sep="\t")
ifileVI <- data.frame(ifile["VI"], ifile["Site"])
x<-quantile(ifileVI$VI,c(0.01,0.99))
data_clean <- ifileVI[bfileVI$VI >=x[1] & ifileVI$VI <=x[2],]

p <- ggplot(data_clean, aes(x = Site, y = VI, group=Site)) + geom_boxplot() + geom_histogram(binwidth = 0.05)

p

但是我收到以下错误:

Error: stat_bin() must not be used with a y aesthetic.

b文件VI:

Id	    VI	Site
WFR1	2.91	1
WFR1	2.89	2
WFR1	2.86	3
WFR1	2.91	4
WFR1	2.87	1
WFR1	2.67	2
WFR1	2.76	3
WFR1	2.74	4
WFR1	2.98	4
WFR1	2.89	3
WFR1	2.55	4
WFR1	2.96	3
WFR1	2.71	1
WFR1	2.98	2
WFR1	2.89	3
WFR2	2.55	2
WFR2	2.86	4
WFR2	2.91	3
WFR2	287	1
WFR2	2.74	2
WFR2	2.98	1
WFR2	2.89	2
WFR2	2.55	3
WFR2	2.96	4
WFR2	2.71	1
WFR2	2.86	2
WFR2	2.91	3
WFR2	287	4
WFR2	2.67	1
WFR2	2.76	2
WFR2	2.74	3
WFR2	2.98	4
WFR2	2.89	1
WFR2	2.55	2
WFR2	2.96	3
WFR2	2.71	4
WFR2	2.98	1
WFR2	2.89	2
WFR2	2.55	3
WFR2	2.86	4

您可以尝试用矩形替换直方图以生成如下图:

enter image description here


这个怎么做:

生成随机数据

df <- data.frame(State = LETTERS[1:3],
                 Y = sample(1:10, 30, replace = TRUE),
                 X = rep(1:10, 3))

用矩形替换直方图

library(ggplot2)

# You can plot geom_histogram or bar (pre-counted stats)
ggplot(df, aes(X, Y)) +
    geom_bar(stat = "identity", position = "dodge") +
    facet_grid(State ~ .)
# Or you can plot similar figure with geom_rect
ggplot(df)  +
    geom_rect(aes(xmin = X - 0.4, xmax = X + 0.4, ymin = 0, ymax = Y)) +
    facet_grid(State ~ .)

添加箱线图

要添加箱线图,我们需要:

  1. 翻转坐标(函数coord_flip)
  2. 切换 X 和 Y 值geom_rect

Code:

ggplot(df)  +
    geom_rect(aes(xmin = 0, xmax = Y, ymin = X - 0.4, ymax = X + 0.4)) +
    geom_boxplot(aes(X, Y)) +
    coord_flip() +
    facet_grid(State ~ .)

Result:

enter image description here

最终的情节代码具有更好的视觉效果

ggplot(df)  +
    geom_rect(aes(xmin = 0, xmax = Y, ymin = X - 0.4, ymax = X + 0.4),
              fill = "blue", color = "black") +
    geom_boxplot(aes(X, Y), alpha = 0.7, fill = "salmon2") +
    coord_flip() +
    facet_grid(State ~ .) +
    theme_classic() +
    scale_y_continuous(breaks = 1:max(df$X))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在ggplot2中用直方图叠加箱线图 的相关文章

  • R 根据事件更新值

    我最近发布了这个问题 该问题已经与我在笔记本电脑上本地使用的 Mysql 数据库相关 由于我在 Mysql 中没有找到问题的解决方案 其他人似乎也没有找到解决方案 所以我想再次发布它 但现在与 R 相关 我使用带有 RMysql 包的数据库
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • R 中具有稳健回归的异常值

    我正在使用lmrobR 中的函数使用robustbase用于稳健回归的库 我会把它用作 rob reg lt lmrob y 0 dat method MM control a1 当我想返回我使用的摘要时summary rob reg 稳健
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • 如何用外部图像填充地图边界?

    我正在创建一张带有州边界的巴西地图 这可以直接使用ggplot2 and geom sf 然而 这一次 我不想用数据填充每个状态的颜色 而是想用外部图像 png 填充每个状态的边界 类似于this https online olivet e
  • 计算每个唯一值出现的次数

    假设我有 v rep c 1 2 2 2 25 现在 我想计算每个唯一值出现的次数 unique v 返回唯一值是什么 但不返回它们的数量 gt unique v 1 1 2 我想要一些能给我的东西 length v v 1 1 25 le
  • 我无法下载 R 中的 reshape2 包 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试安装 R 包时收到此响应 gt installed packages reshape2 Package LibPath V
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 time milk Animal ID 30 25 6 1 31 27 2 1 32 24 4 1 33 17 4 1 34 33 6 1 35 25 4 1 33 29 4 2 34 25 4 2 35 24
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N

随机推荐

  • 如何从子级向父级引用一个类?

    这可能听起来很愚蠢 但我如何在父级的另一个脚本中引用子级中的一个脚本中的类 我在谷歌上找不到任何东西 注意 我的脚本中有几个错误 这不是本文的重点 Public Private private Rigidbody myRigidbody p
  • android webview 中的 onClick 事件太慢

    我感觉 javascript 本身在 android webview 中相当快 但是触摸元素和触发 onclick 事件之间有很长的延迟 我可以想象 如果您在页面之间导航 这是一个功能 您首先看到元素上的突出显示 然后看到效果 导航 但对于
  • 从 http.Request 获取客户端 IP 地址的正确方法

    获取所有客户端 IP 地址的正确方法是什么http Request In PHP有很多的变量我应该检查一下 Go 上也一样吗 我发现的一项是 req RemoteAddr 请求是否区分大小写 例如x forwarded for是相同的X F
  • 在.NET 中解析 VB6 代码

    我有一个用 C 编写的 WPF 项目 为了获取有关外部依赖项的一些信息 我需要解析 VB6 脚本 脚本的位置发生了变化 其内容也发生了一些变化 但我感兴趣的主要代码将采用以下格式 Select Case Fields blah Value
  • 如何在 C# 中将 JSON 转换为 XML 或 XML 转换为 JSON?

    我开始使用 Json NET 将 JSON 格式的字符串转换为对象 反之亦然 我不确定在 Json NET 框架中 是否可以将 JSON 格式的字符串转换为 XML 格式 反之亦然 是的 使用 JsonConvert 类 其中包含用于此精确
  • 如何在ag网格透视模式下将不同的列数据显示为工具提示?

    var ColDef headerName colA field colA rowGroup true headerName colB field colB pivot true enablePivot true headerName co
  • 我的代码中无效的“剥离/剩余”循环

    我有这个功能 bool interpolate const Mat im float ofsx float ofsy float a11 float a12 float a21 float a22 Mat res bool ret fals
  • 如何清理由“json_object_new_string”创建的json对象?

    我有以下代码 我想清理由以下命令创建的 json 对象json object new string include
  • javascript:查找属性所属的原型对象

    我有一个来自 Square 的实例 它继承自 Rectangle instance instanceof Rectangle gt true instance instanceof Square gt true instance area
  • iOS 10.0 运行时崩溃中的 NSCameraUsageDescription?

    Using iOS 10 0最后一个测试版 我曾尝试在我的应用程序中使用相机扫描条形码 但由于此运行时错误而崩溃 此应用程序已崩溃 因为它尝试访问隐私敏感信息 没有使用说明的数据 应用程序的 Info plist 必须包含 一个 NSCam
  • 为什么第二个 if 子句还要执行?

    我有一个do while在我的程序中循环 谁的继续条件不断给我一个相差一的错误 我不明白为什么 它看起来像这样 do while ii le nri and ed ii le e1 do some stuff ii ii 1 end do
  • jQuery.getScript() 无法加载函数

    我正在尝试加载具有如下函数的脚本 getScript js mymy js done function if readCookie my cookie yes do sth here or getScript js mymy js func
  • 将单元格的 NA 值替换为同一数据框中另一列的值

    我有一个在我看来很简单的问题 但我自己无法解决 我在StackOverflow上搜索了解决方案 我猜已经有人解决了 但我还没有找到 我有一个基于 5 个数据框合并的数据框 如下所示 id mag1 mag2 mag3 1 name name
  • php - 如何验证正则表达式本身?

    我需要验证用户输入 该输入可能是用于过滤他 她自己的应用程序中的字段的正则表达式 如何检查该正则表达式的有效性 将其传递给一个虚拟调用preg match 看看它是否返回 false 指示错误 Note 根据您打算运行此应用程序的位置 我会
  • SwiftUI Picker onChange 或同等产品?

    我想换另一个不相关的 State变量 当Picker改变了 但是没有onChanged并且不可能放一个didSet在挑选器上 State 还有其他方法可以解决这个问题吗 iOS 14 或更高版本的部署目标 苹果提供了一个内置的onChang
  • WordPress 自定义查询字符串和漂亮的 URL - 如何实现?

    我有一个非常好的 到目前为止 新网站的 WordPress 设置 漂亮的网址按预期工作 我有 1 个动态页面 根据查询字符串加载内容 dynamic loc england code uk 我也希望使这个 URL 变得 漂亮 但每次我修改
  • Stream.forEach 是否尊重顺序流的遇到顺序?

    Javadoc 的Stream forEach说 强调我的 此操作的行为显然是不确定的 对于并行流管道 此操作不保证遵守流的遇到顺序 因为这样做会牺牲并行性的好处 对于任何给定的元素 可以在库选择的任何时间和任何线程中执行该操作 如果操作访
  • Spring Batch:如何将 jobParameters 传递给自定义 bean?

    我仍在研究 spring Batch 并遇到了一个场景 我需要将 jobParameter 传递给自定义 bean job参数包含文件的路径 我的上下文如下所示
  • 如何获取属于magento中属性组的所有属性

    我有一个属性组 我想获取属于特定属性组的属性列表 有没有办法获取一个属性组下的所有属性 适用于法师 1 7 0 0 function printGroupAttributes groupId attributesCollection Mag
  • 在ggplot2中用直方图叠加箱线图

    您好 我想使用 R 脚本创建一个类似的图表 如下所示 取自 https community tableau com thread 194440 这是我在 R 中的代码 library ggplot2 ifile lt read table