ggplot根据数据框中的值重新排序堆积条形图

2024-04-04

我正在 R 中使用 ggplot2 制作堆积条形图,并在 y 轴上具有特定的条形排序。

# create reproducible data
library(ggplot2)
d <- read.csv(text='Day,Location,Length,Amount
            1,4,3,1.1
            1,3,1,2
            1,2,3,4
            1,1,3,5
            2,0,0,0
            3,3,3,1.8
            3,2,1,3.54
            3,1,3,1.1',header=T)

ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount, order = Location), stat = "identity")

ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount, order = rev(Location)), stat = "identity")

第一个 ggplot 图按 Location 的顺序显示数据,Location=1 最接近 x 轴,并且 Location 的每个递增值的数据堆叠在下一个上。

第二个 ggplot 图以不同的顺序显示数据,但它不会将最接近 x 轴的最高位置值的数据与堆叠在距离 x 轴位置第二个位置的下一个最高位置的数据堆叠在一起。第一个栏列,就像我期望的那样较早的帖子 https://stackoverflow.com/questions/30486617/r-stacked-bargraph-with-colors-representing-values.

下一个片段确实以所需的方式显示数据,但我认为这是简单且小型示例数据集的产物。尚未指定堆叠顺序,因此我认为 ggplot 是根据 Amount 的值进行堆叠的。

ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount), stat = "identity")

我想要的是是通过调用以下命令强制 ggplot 按位置值递减的顺序堆叠数据(最接近 x 轴的位置 = 4,接下来的位置 = 3,...,以及条形列最顶部的位置 = 1)order =或一些等效的论点。有什么想法或建议吗?

看起来应该很容易,因为我只处理数字。要求 ggplot 以与一列递减(当您远离 x 轴时)数字相对应的方式堆叠数据应该不难,不是吗?


Try:

ggplot(d, aes(x = Day, y = Length)) + 
  geom_bar(aes(fill = Amount, order = -Location), stat = "identity")

注意我是如何交换的rev with -。使用rev做了一些非常不同的事情:如果您颠倒列中值的顺序,它会按您碰巧获得的每一行的值进行堆叠Location,这可能是任何东西。

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

ggplot根据数据框中的值重新排序堆积条形图 的相关文章

随机推荐

  • 在 Chrome 和 Safari 中使用 onafterprint

    我知道直到最近onafterprint仅适用于 IE 最近 HTML5 已将其添加到其事件列表中 我只在 Firefox 中成功使用它 但无法让它在 Chrome 或 Safari 中运行 当它在正文中使用时 它似乎仅在 Firefox 中
  • 使用访问令牌重置环回密码

    我正在开发一个使用 Loopback 作为框架的项目 其中包括用户和身份验证 我添加了生成并通过电子邮件发送的密码重置路由 一切似乎都正常工作 最近 我发现密码重置似乎不起作用 这里重置密码的流程是 调用用户密码重置方法 通过重置事件发送电
  • 获取 xml body 的所有元素并添加到 struct

    我正在寻找一种方法来循环 XML Body 并将每个 xml 元素传递到结构中 我通过以下方式访问了 xml 主体
  • 随着时间的推移围绕枢轴点旋转游戏对象

    我使用以下代码相对于另一个枢轴点旋转一个点 Vector3 RotatePointAroundPivot Vector3 point Vector3 pivot Vector3 angles Vector3 dir point pivot
  • 尝试共享图像时 Facebook 不会出现在共享窗口上

    我在应用程序中创建了一个位图 并希望使用 Intent ACTION SEND 通过电子邮件应用程序或 Facebook 共享它 共享窗口打开 gmail 和 yahoomail 应用程序图标出现 但没有 facebook 或 g 我真的不
  • @PostConstruct 中没有会话休眠

    MyDao 类具有通过 Hibernate SessionFactory 执行整个持久性任务的方法 它工作得很好 我在 MyService 中注入了 MyDao 如上所示 但是当在注入 MyDao 后调用 PostConstruct ini
  • 更好地理解 Java 中的递归

    好吧 我对 Java 中的递归有些困惑 假设我有以下代码 static int findShortestString String paths int lo int hi if lo hi return lo int minindex fi
  • mongos 上的 MongoDB 错误:位置选项太多

    我正在尝试运行一个批处理脚本 这应该是我第一次在 mongodb 上进行分片 它在这一行显示以下错误 D mongodb win32 x86 64 2 2 3 bin gt mongos configdb localhost 26050 l
  • 我可以使用 shmctl 调整 Linux 共享内存的大小吗?

    我有一个 C 应用程序 它通过 shmget 2 在 Linux 系统上分配共享内存 我存储在共享内存中的数据会定期增长 我想以类似于 realloc 增长常规内存的方式调整共享内存的大小 有没有办法做到这一点 我在 IBM 网站上找到了一
  • Python 许多依赖项中的任何一个

    我有时会遇到这样的情况 我有一个包可以依赖于包 A 或 B 例如 我的项目依赖于一个名为spam 如果该项目重命名为pyspam 我的项目可以取决于spam or pyspam 我无法弄清楚 或找到 如何在 setup py 中定义此类依赖
  • 安装 Angular 不支持的引擎,OSX

    我正在重新安装我的 MacBook 当我安装 npm install g angular cli Angular 时 我收到以下消息 知道为什么吗 我怀疑 nom 版本 但我附带了节点 Developments npm install g
  • PIL 改变颜色通道强度

    我想制作一个颜色选择器 它可以重新着色 png 纹理 同时保留 python3 中的透明度 我只希望图像的较亮部分重新着色 但也保持渐变 我能想到的唯一选择是调整颜色通道强度 但是我在 PIL 文档中没有找到类似的内容 如何更改颜色通道强度
  • 查找哪个文本框为空

    我有一个简短的 Windows 程序 用来快速添加信息 但现在我正在努力增强它 正在寻找一种更有效的方法来检查空文本框 如果该框为空 则找出它是哪一个并将焦点设置回仅该框 目前 我循环遍历所有这些框 并检查是否有任何框是空的 如果它只是显示
  • Android Drawable(进度条、开关)渲染问题

    我正在尝试实现下面的用户界面 我正在使用带有 ADT 插件的 Eclipse 下面是圆 白色 深灰色 的实现 circle shape xml
  • 页面加载 - 页面之间出现白色“闪烁”

    有两个网站 一个正在运行 一个正在开发中 我正在将一个站点移植到 Zend Framework 出于可维护性 集成目的 原始 实时 站点具有无缝页面加载 它将加载 然后更新屏幕上的内容 同时保留页面上的背景图像 导航等 移植的网站 开发 会
  • 在 Swift 3.0 中创建目录

    我是一名九年级新生swift 创建一个学校项目 我正在尝试创建一个目录 将扫描文件保存为 pdf 格式 创建目录时出现以下错误 错误1 无法在属性初始值设定项中使用实例成员 filemgr 属性初始值设定项在 self 可用之前运行 Err
  • 如何使用相同的函数按行比较矩阵列表

    假设我有一个包含两个矩阵的列表 x and y x lt c 3 4 5 5 3 4 5 6 5 6 2 1 x lt matrix x 3 4 y lt c 3 4 5 5 3 4 5 6 5 5 2 1 y lt matrix y 3
  • 在字符串中添加新行以进行翻译

    我正在使用 ngx 翻译 如何在要翻译的字符串中添加换行符 在我的模板中 我有 STRING TO TRANSLATE translate 在我的 en json 中 STRING TO TRANSLATE text on first li
  • 如何将纪元转换为日期时间红移?

    我在 dbeaver 工作 我有一个表x 表 x 有一个 时间戳 列 1464800406459 1464800400452 1464800414056 1464800422854 1464800411797 我想要的结果 Wed 01 J
  • ggplot根据数据框中的值重新排序堆积条形图

    我正在 R 中使用 ggplot2 制作堆积条形图 并在 y 轴上具有特定的条形排序 create reproducible data library ggplot2 d lt read csv text Day Location Leng