使用 ggplot2 绘制彩色直方图

2023-12-12

我有一个包含值及其相关权重的数据框。我想制作一个直方图,使得每个条形的高度对应于该箱中的值的数量,并且条形的颜色对应于它们的总重量。我怎么做?

Example:

D <- data.frame(
    x = c(-0.39, 0.12, 0.94, 1.67, 1.76, 2.44, 3.72, 4.28, 4.92, 5.53, 0.06,
          0.48, 1.01, 1.68, 1.80, 3.25, 4.12, 4.60, 5.28, 6.22),
    w = c(0.1810479, 0.2209460, 0.2974134, 0.3768152, 0.3871925, 0.4682943,
          0.6220371, 0.6838944, 0.7473117, 0.7993555, 0.2159428, 0.2526883,
          0.3046069, 0.3779629, 0.3918383, 0.5667588, 0.6667623, 0.7166747,
          0.7790540, 0.8480375))

ggplot(D, aes(x)) +
    geom_histogram(aes(y=..density..), binwidth=0.5, boundary=0.5)

Solution

基于 eipi10 的答案,但使用标准函数:

breaks <- seq(-0.5, 6.5, 0.5)
bins   <- cut(D$x, breaks)

h <- data.frame(
    x      = head(breaks, -1) + 0.25,
    count  = sapply(split(D$x, bins), length),
    weight = sapply(split(D$w, bins), sum))
h$density <- h$count / sum(h$count)

ggplot(h) + geom_bar(aes(x, density, fill=weight), stat='identity')

EM visualization using this method


另一种选择是预先汇总数据:

library(dplyr)

D_bins = D %>% 
  mutate(bins = cut(x, seq(-0.5,6.5,0.5), labels=seq(-0.25,6.5,0.5)),
         bins = as.numeric(as.character(bins()))) %>%
  group_by(bins) %>%
  summarise(count_x = n(),
            sum_w = sum(w))

ggplot(D_bins) +
  geom_bar(aes(bins, count_x, fill=sum_w), colour="white", stat="identity") 

enter image description here

您还可以使用两组相对的条形,而不是填充美学:

ggplot(D_bins) +
  geom_bar(aes(bins, count_x), colour="white", fill="blue", stat="identity") +
  geom_bar(aes(bins, -sum_w), colour="white", fill="red", stat="identity") +
  scale_x_continuous(breaks=-1:10) +
  scale_y_continuous(limits=c(-2,4), breaks=seq(-2,5,1), labels=c(2,1,0:5)) +
  labs(y = c("Sum of w                       Count of x            ")) +
  coord_flip()

enter image description here

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

使用 ggplot2 绘制彩色直方图 的相关文章

  • Mac OS Big Sur R 编译错误:ld:找不到 CoreFoundation 框架

    在我的 Xcode 自动更新到 12 4 后 我的 Rstudio 包编译中断并抛出以下错误 ld framework not found CoreFoundation collect2 error ld returned 1 exit s
  • R中引用和表达式的区别

    gettypes function x paramx substitute x print typeof paramx print class paramx print mode paramx gettypes expression sin
  • 如何在 R 中使用 Torocks5 getURL

    我想使用 TorgetURLR Tor 中的功能正在工作 在 Firefox 中检查 socks5 at port 9050 但是当我在 R 中设置它时 出现以下错误 html lt getURL http www google com f
  • 使用 R 时 Bash 中的颜色语法突出显示

    我在 Ubuntu 下的 Bash 中运行 R 有没有办法在运行 R 时在 Bash 中使用颜色语法突出显示 我非常感谢有关该主题的任何信息 并希望这个问题不会令人烦恼地无知 您可以尝试colorout包裹
  • 从命令行运行 R 脚本

    我有一个文件 名为a r 它有一个chmod of 755 sayHello lt function print hello sayHello 我如何通过命令行运行它 Answer recommended by R Language col
  • R:如何跨行应用xts对象?

    我有以下 xts 对象 x lt structure c 30440 5 30441 30441 5 30441 5 30441 30439 5 30440 5 30441 30441 5 NA NA 30439 5 NA NA NA 30
  • 如何更改现已弃用的 dplyr::funs() (其中包含 ifelse 参数)?

    非常基本 但我认为我并没有真正理解这一变化 library dplyr library lubridate Lab import sql lt Lab import gt select if sum is na gt 0 gt mutate
  • R 中带有 ggplot 的背景带

    我正在尝试为不同的组创建箱线图 我想用 3 个水平条带为背景着色 中心观测值 其中所有观测值均接近总体平均值 平均值 体重 0 5 另外 2 个带是下面的和上面的 这些是我的情节 library ggplot2 bp lt ggplot d
  • ggplot2 密度直方图,宽度=.5,vline 和居中条形位置

    我想要一些离散数据的良好密度 总和为 1 直方图 我尝试了几种方法来做到这一点 但没有一种方法完全令人满意 生成一些数据 data set seed 999 d test data frame score round rnorm 100 1
  • 数据表中的最大行数

    我的 data table 中有一个包含 8 000 000 行 100 列的数据集 其中每列都是一个计数 我需要找到每行的最大计数以及该最大值位于哪一列 我可以使用以下命令快速获取每行的哪一列具有最大值 dt lt dt maxCol w
  • 测试 PCA 图上簇的显着性

    是否可以在 PCA 图上测试 2 个已知组之间聚类的显着性 测试它们的接近程度或分布量 方差 以及簇之间的重叠量等 这是一种定性方法 使用ggplot 在簇周围绘制 95 置信椭圆 注意stat ellipse 使用二元 t 分布 libr
  • R 将向量重塑为多列

    假设我在 R 中有一个向量 如下所示 d lt seq 1 100 我想将这个向量重塑为 10x10 矩阵 这样我就可以得到以下数据 1 2 3 10 1 2 3 10 11 12 13 20 21 22 23 30 91 92 93 10
  • 将数据框列作为参数传递给 mutate 函数

    我有一张表 其中有五列 年份 GDP 收入 收入 和 工资 通过这张表 我用下面的代码进行了计算 library dplyr DATA TEST lt data frame Year c 2000 2001 2002 2003 2004 2
  • 如何在 ggplot2 图中有两个源标题? [复制]

    这个问题在这里已经有答案了 我正在尝试在 ggplot2 图中添加第二个标题 与这位经济学家制作此图的方式类似 这是我制作的一个基本图 我知道如何在右下角添加一个标题 但如何在左下角添加另一个标题 ggplot mtcars aes mpg
  • 如何在R中对多个时间序列应用dtw算法?

    Problem 我有不同车辆速度的时间序列 我的最终目标是根据不同车辆在时间上的速度相似性对它们进行聚类 因此 我基本上需要生成一个距离矩阵 其中每个单元格包含一对车辆速度时间序列之间的距离 我想使用动态时间扭曲 dtw 作为距离度量 所以
  • 如何制作 POSIXct 的空向量

    我想制作一个空向量POSIXct这样我就可以放一个POSIXct in it vec lt vector POSIXct 10 vec vec 1 lt 2014 10 27 18 11 36 PDT vec 那是行不通的 有任何想法吗 由
  • R - 按列比较两行并将结果写入表中

    我是 R 新手 可能我的问题的解决方案非常简单 但目前我无法实现 我想按列比较数据框中的行 每列中的数据是一个字母 核苷酸碱基 seq1 A C T G T seq2 A C G G G seq3 A G G C A 我想按列比较数据集中的
  • 如何使用 formattable 折叠表中的行值组?

    我有兴趣使用以下领域的工具formattableR 包 但我只想在表中显示有更改的地方 也就是说 我想要在kableExtra包通过collapse rows 功能 例如 使用kable and kableExtra 我可以做这个 libr
  • 如何强制geom_point在R中显示比例大小?

    我的数据如下 抱歉有点大 test dput 我还有一个绘制这些数据的代码 这里的问题是它没有给我比例大小read counts value多变的 我怎样才能解决这个问题 谢谢 my code p ggplot test dput aes
  • 合并行并用 group_by 和? 填充空位置

    对 R 编码非常陌生 我一直在尝试使用 dplyr 中的 group by 格式化 合并 df 中的行 然而 我还没有完全做到这一点 这是我的数据表的简化 前三个条目共享相同的 id 最后两个条目共享相同的 id ID Assay1 Ass

随机推荐

  • 如果给出查询,MongoDB 的 count() 会错误地返回 0

    我们的数据库当前正在运行 一切似乎都很好 我想做一些统计 所以我做了一些标准调用 基本上我想要一些特定数据的数量 首先进行一些基本调用 向您展示数据库中确实有数据 gt db files count 814639 gt db files f
  • 使用 NVD3.js (nv.models.lineWithFocusChart),当 x 值为日期时,如何在 X 轴上设置特定刻度?

    我在用着nv models lineWithFocusChart 我在其中显示了一些每小时的测量值 所以 x 域是日期 我需要在 X 轴上显示每小时的刻度 00 00 01 00 02 00 24 00 我已经尝试了我能找到的一切 但没有任
  • MvxRecyclerView Fluent API 绑定

    我无法使用 Fluent API 将 MvxRecyclerView 或其适配器 中的 ItemClick 绑定到我的 ViewModel 上的命令 如果我将 ItemsSource 和 ItemClick 都放入 XML 中 它就会起作用
  • 从 AJAX 成功功能更新图像源

    我用来更新 AJAX 成功函数中的标签值 如下所示 但我需要知道如何应用此方法来更改 更新某个对象的 src img src ajax url clmcontrol livematchupdate type post dataType js
  • 从 Makefile 运行 go 时权限被拒绝

    我遇到了一些奇怪的权限被拒绝的错误 我不知道这些错误可能来自哪里 go run Hello from go make run go run make go Permission denied make Makefile 2 run Erro
  • 迁移持久存储崩溃

    我有一个开关 可以为 iOS 7 应用程序打开或关闭 iCloud iCloud 同步工作正常 当 iCloud 打开并且我将其关闭时 我调用以下代码 void migrateiCloudStoreToLocalStore NSError
  • 未知属性 Android:Android STUDIO 3.2.1 上出现错误

    我为解决这个问题所做的事情 清洁构建和重建 已删除 idea 文件 无效的缓存 重新启动 选项 打开省电模式 SDK 是最新的 同步项目与 Gradle 文件已完成 重新安装Android Studio完成 重新创建新项目完成 更改了应用程
  • 禁用表中的控件 - JQuery/Javascript

    我有一个复杂的 UI 其中包含多个嵌套表 一个中继器控件和几个其他 HTML 控件 这些控件的禁用属性基于 JQuery 中的业务逻辑进行设置 我需要一种方法来禁用整个表格 包括嵌套控件 UI 元素等 并在用户切换按钮时重新启用它们 我可以
  • 使用 IComparer 进行排序

    我正在尝试使用IComparer对点列表进行排序 这是 IComparer 类 public class CoordinatesBasedComparer IComparer public int Compare Object q Obje
  • Eloquent 中的 IN 语句

    我正在尝试在 Eloquent 查询中执行 IN 语句 我试过这个 id urldecode id news News whereHas newsCategories function q use id q gt where categor
  • Groovy 中的属性注释内省

    有没有一种方便的方法来迭代对象的属性并检查每个属性的注释 你可以这样做 First declare your annotation import java lang annotation Retention RetentionPolicy
  • IIS 反向代理到 node.js

    我正在尝试配置反向代理 以便从 IIS 中托管的网站向 node js 应用程序发出的 HTTP 调用可以正常工作 我会更好地解释它 我租了一个VPS 在此 VPS 中 我有一个 IIS 网站 简单的 HTMl Javascript 和一个
  • 从特定字符开始截断 NSString 的一部分

    我有一根绳子 NSString myOldString This is a string and this part is between brackets 现在 我想以这样的方式截断字符串 基本上括号之间的所有内容 包括括号 都被截断 更
  • Spring Boot:将另一个端口上的请求发送到自定义 Servlet

    我希望我的 spring boot 应用程序侦听第二个端口 其中 第一个 端口是用于 spring webmvc 端点的 server port 并将进入第二个端口上的 的所有流量定向到 Servlet 的实现我已经写了 这些请求将是 js
  • 当选择 p/h:selectOneMenu 中的空 f:selectItem 时,有条件地跳过验证

    父母
  • My.Settings 引用库使用的 app.config 文件的位置?

    如果我有一个类库app config文件 我知道这并不理想 请耐心等待一下 其中包含使用项目 设置 选项卡创建的设置值 并按如下方式访问 Public Shared Function GetMySetting key As String A
  • 我可以使用计时器每 x 毫秒更新一次标签吗

    这是我的代码 Stopwatch timer new Stopwatch timer Start while timer ElapsedMilliseconds lt 3000 label1 Text Convert ToString ti
  • 如何在 conda 环境中安装已弃用/不受支持的 Python 3.4?

    自 Python 3 4 弃用以来 conda 已将其从包列表中删除 但是 有什么方法可以安装它吗 我需要它才能使用用旧版本编写的软件 编辑 我的问题与建议重复一份 因为我指的是已弃用和不受支持的版本 我已经知道如何使用特定的 python
  • 同时交换两个片段

    在我的应用程序中 我有一个活动 并且在运行时添加两个片段 我需要同时交换这两个片段 片段 1 包含一个按钮 我希望当我单击该按钮时 片段 1 移动到屏幕的右侧 而其他片段移动到活动的左侧 在按钮的 onClick 方法中我尝试了这样的方法
  • 使用 ggplot2 绘制彩色直方图

    我有一个包含值及其相关权重的数据框 我想制作一个直方图 使得每个条形的高度对应于该箱中的值的数量 并且条形的颜色对应于它们的总重量 我怎么做 Example D lt data frame x c 0 39 0 12 0 94 1 67 1