在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中用直方图叠加箱线图 的相关文章

  • 如何将数据从长格式重塑为宽格式

    我在重新排列以下数据框时遇到问题 set seed 45 dat1 lt data frame name rep c firstName secondName each 4 numbers rep 1 4 2 value rnorm 8 d
  • 如何在R中创建for循环? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 R 编程中启动 for 循环 https stackoverflow com questions 4162363 how to start a for loop in r programmin
  • 构造奎因(自我复制功能)

    有没有人构建过 quine 生成自己源文本的副本作为其完整输出的程序 http www nyx net gthompso quine htm http www nyx net gthompso quine htm 在 R 中 quine 标
  • 使用 R 将日期格式的字符串列表/向量转换为 posix 日期类

    我有一个日期格式的字符串列表 我想将其转换为可以使用 R 操作的 posix 日期列表 我该怎么做 这就是我所拥有的 但我最终得到了一个列表 a lt c 2009 01 01 00 00 00 2009 01 01 00 00 00 z
  • 在列标题和配对变量中嵌入数据的数据透视表

    假设我有这样的数据 不幸的是 变量值嵌入在列名称中 library tidyr library dplyr dat lt tribble group var1 var meta1 var2 var meta2 group1 5 2 cat
  • 如何使用 Facet R 添加线条[重复]

    这个问题在这里已经有答案了 所以我有一个多面图 我希望能够向其中添加随每个面而变化的线 这是代码 p lt ggplot mtcars aes x wt geom histogram bins 20 aes fill factor cyl
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整
  • R中data.frame(列表)的列平均值

    Data https i stack imgur com ZYsmv jpg 请 我需要计算此 data frame 中维吉尼亚币 Sepal Length 列的平均值 Sepal Length Sepal Width Petal Leng
  • ggplot 按因子和梯度颜色

    我正在尝试绘制一个对两个变量 一个因子和一个强度 进行着色的图 我希望每个因素都是不同的颜色 并且我希望强度是白色和该颜色之间的渐变 到目前为止 我已经使用了诸如对因子进行分面等技术 将颜色设置为两个变量之间的相互作用 并将颜色设置为因子并
  • 如果落在 R 中另一个数据集中的两个变量定义的范围内,则从一个数据集中获取变量值

    我有一个关于 R 中日期操作的问题 我已经查了好几天了 但在网上找不到任何帮助 我有一个数据集 其中有 id 和两个日期 另一个数据集具有相同的 id 变量 日期和价格 例如 x data frame id c A B C C date1
  • 在 R 中计算大矩阵的零空间

    我找不到任何函数或包来计算 a 的零空间或 QR 分解 bigmatrix from library bigmemory 在 R 中 例如 library bigmemory a lt big matrix 1000000 1000 typ
  • data.table 查找值并翻译

    像许多人一样 我是 R 新手 我有一个大数据集 500M 行 我已将其读取到 data table 中logStats其中有如下数据 head logStats 15 time pid mean 1 2014 03 10 00 00 00
  • dplyr::group_by_ 带有多个变量名的字符串输入

    我正在编写一个函数 要求用户在函数调用中定义一个或多个分组变量 然后使用 dplyr 对数据进行分组 如果只有一个分组变量 它会按预期工作 但我还没有弄清楚如何使用多个分组变量来做到这一点 Example x lt c cyl y lt c
  • R 子集 XTS 工作日

    如何对 xts 对象进行子集化以仅包含工作日 周一至周五 周六和周日除外 这就是我要做的 library xts data sample matrix sample xts lt as xts sample matrix descr my
  • Rcpp 包不包含 Rcpp_precious_remove

    我一直在尝试创建数据库并安装 DBI 包 但仍然遇到此错误 我重新安装了 DBI 和 RSQLite 软件包 但它们似乎不起作用 library DBI con lt dbConnect RSQLite SQLite dbname memo
  • xtable 中的 Cox 回归输出 - 选择行/列并添加置信区间

    我不想将 cox 回归的输出导出到一个表中 然后将其放入我的文章中 我想最好的方法是使用 xtable library survival data pbc fit pbc lt coxph Surv time status 2 age ed
  • 如何自动替换多个文件的文本内容中的字符?

    我有一个文件夹 myfolder包含许多乳胶表 我需要替换其中每个字符 即替换任何minus sign by an en dash 只是为了确定 我们正在替换连字符INSIDE该文件夹中的所有 tex 文件 我不关心 tex 文件名 手动执
  • 有什么方法可以禁用 PDF/Postscript 输出中的“减号破解”吗?

    在 R 中 将绘图保存到 PDF 或 Postscript 文件时 轴标签中的连字符会变成减号 显然 这是设计使然 根据 postscript 设备的文档 正常编码规则 有一个例外 字符 45 始终设置为负号 其在 Adob e ISOLa
  • 更快地评估从右到左的矩阵乘法

    我注意到以二次形式评估矩阵运算右到左明显快于左到右在 R 中 取决于括号的放置方式 显然它们都执行相同的计算量 我想知道为什么会这样 这与内存分配有什么关系吗 A 5000 5000 B 5000 2 A matrix runif 5000
  • 在并行包中的 R 的 par*apply 函数内部使用 Rcpp 函数

    我试图了解背后发生的事情Rcpp sourceCpp 调用并行环境 最近 问题中部分解决了这个问题 在 Windows 上使用 parLapply 中的 Rcpp 函数 https stackoverflow com questions 2

随机推荐

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

    这可能听起来很愚蠢 但我如何在父级的另一个脚本中引用子级中的一个脚本中的类 我在谷歌上找不到任何东西 注意 我的脚本中有几个错误 这不是本文的重点 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