ggplot2条形图:按数据顺序填充

2024-06-08

给出这样的数据框:

sam<-data.table(title=c(rep("Cat",8),rep("Dog",4)),
               fcat=c("A","B","C","B","B","C","C","B","C","B","B","C"),
               fnum=c(seq(8,1),seq(4,1)),
               labeltext=c("Pancakes","Muffins","Baursaq","Muffins","Muffins",
                 rep("Baursaq",3),"Muffins","Baursaq","Baursaq","Muffins"), 
               size=c(10,rep(1,11)))

sam
    title fcat fnum labeltext size
 1:   Cat    A    8  Pancakes   10
 2:   Cat    B    7   Muffins    1
 3:   Cat    C    6   Baursaq    1
 4:   Cat    B    5   Muffins    1
 5:   Cat    B    4   Muffins    1
 6:   Cat    C    3   Baursaq    1
 7:   Cat    C    2   Baursaq    1
 8:   Cat    B    1   Baursaq    1
 9:   Dog    C    4   Muffins    1
10:   Dog    B    3   Baursaq    1
11:   Dog    B    2   Baursaq    1
12:   Dog    C    1   Muffins    1

我想创建一个 x=标题、y=大小的条形图,由 fcat 填充,由 labeltext 标记,并按 fnum 降序排列。第一种方法无需对原始数据重新排序。在这里,我连接了标签文本,以检查顺序、大小和类别是否使用正确。

ggplot(sam)+
    geom_bar(aes(x=factor(title), y=size,fill=fcat),
             stat="identity", color="white", size=1)+
    geom_text(aes(x=title, y=size,
             label=(paste(labeltext,size,fnum,fcat, sep=" "))),
             size = 3, position = position_stack(vjust = 0.5))+
    ggtitle("Without ordering")

标签按需订购,但填充存在很大问题。 通过 fnum 重新排序填充:

ggplot(sam)+
    geom_bar(aes(x=factor(title), 
              y=size,fill=reorder(fcat,fnum)),
              stat="identity", color="white", size=1)+
    geom_text(aes(x=title,y=size,
             label=reorder(paste(labeltext,size,fnum,fcat, 
                       sep=" "),fnum)),
             size = 3, position = position_stack(vjust = 0.5))+
    ggtitle("Ordered by fnum")

在这种情况下,酒吧按错误的填充物进行分组。例如,对于“Cat”,图表应绘制 1 个大小为 10 的蓝色条形,然后绘制 1 个绿色、1 个红色、2 个绿色、2 个红色、1 个绿色(如 labeltext 的类别中所示)。 我希望像原始数据一样删除该图。喜欢this https://stackoverflow.com/questions/18074511/ggplot2-stats-identity-and-stacking-colors-in-bar-plot-gives-striped-bar-cha家伙排在第一位。stat="identity"没有按预期工作。

我尝试了多种方法重新排序,但没有什么帮助。我搜索了 ggplot2 标签中的 SO barplot 填充问题(超过 700 个帖子 o_O),并非常仔细地阅读了文档。尽管如此,到目前为止还没有找到答案。


这是另一种方式

ggplot(sam)+
  geom_bar(aes(x=title, y=size,group=fnum,fill=fcat), #group by fnum and fill with fcat
           stat="identity", color="white", size=1)+
  geom_text(aes(x=title, y=size,
                label=(paste(labeltext,size,fnum,fcat, sep=" "))),
            size = 3, position = position_stack(vjust = 0.5))+
  ggtitle("group by fnum and fill by fcat")

Result:

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

ggplot2条形图:按数据顺序填充 的相关文章

  • 从 R 中的 glm 中提取系数

    我进行了逻辑回归 结果如下 ssi logit single age coefficients coefficients Intercept age 3 425062382 0 009916508 我需要选取系数age 目前我使用以下代码
  • 如何使用 python 读取或转换 .MAP 文件扩展名文档?

    是否有一种简单的方法 或可用的库 来读取 map 文件扩展文档中的数据 最好使用Python 或R 我正在使用 python PCRaster 中的建模工具 该工具使用 map 文件扩展名编写地图 然而有趣的是 我还没有找到可以打开和研究这
  • 将鼠标悬停在 ggplot 上时更新 CSS 和渲染工具提示以错误的顺序发生

    我在这里构建了一个虚拟应用程序 它为 ggplot 生成悬停消息 并确保它们保持在屏幕边界内 我编写了一些计算来确定所需的 CSS 更正并将其发送到服务器 它基于将悬停消息保留在此处的第一次尝试 SO问题 https stackoverfl
  • 计算网络中的周期

    最好的方法是什么 或者是否有任何方法可以实现对网络中的 3 个和 4 个周期进行计数 3 个周期等于从一个模式网络计算的三个节点 三角形 的连接组 4 个周期等于由两个模式网络计算的四个节点 方块 的连接组 如果我有这样的网络 onemod
  • 使用 dplyr::filter 创建 R 函数问题

    我查看了其他答案 但找不到使下面的代码起作用的解决方案 基本上 我正在创建一个函数inner join两个数据框和filter基于函数中输入的列 问题是filter部分功能不起作用 但是 如果我将过滤器从函数中取出并附加它 它就会起作用my
  • 使用 R 绘图将目录添加到 PDF

    我正在 R 中创建大量绘图并将它们保存为 PDF 使用 grDevices pdf 有没有一种简单的方法可以在创建 PDF 时将 元数据 目录添加到 PDF 中 我并不是想添加一个单独的页面 而是添加一个 TOC 像 Preview app
  • 按组划分的模态值(最常见)的简明 R data.table 语法

    用于查找每个 id 最常见类别的高效且优雅的 data table 语法是什么 我保留一个指示 NA 位置的布尔向量 用于其他目的 dt data table id rep 1 2 7 category c x y NA print dt
  • R:在 glm() 中的逻辑回归中预测 (0,1)

    我正在尝试在二进制 Logit 模型中模拟 假设 情况 我正在估计通过测试的概率 考虑到测试的难度级别 1 最简单 5 最难 并以性别为控制 数据是here http dl dropbox com u 1791181 bayesglm cs
  • 将数据帧的每一列乘以向量的相应值[重复]

    这个问题在这里已经有答案了 我有以下数据框和向量 dframe lt as data frame matrix 1 9 3 vector lt c 2 3 4 我想将每一列相乘dframe通过相应的值vector 这不会做 gt vecto
  • R 中的离散化

    有谁知道有一个包可以实现连续变量离散化的监督学习算法 dprep 包包含类似的功能 但该包已被弃用 有任何想法吗 感谢您的帮助 您仍然可以使用dprep包 但你必须从源代码安装它 我刚刚测试过 它运行良好 不过 您或许可以看看离散化 htt
  • 如何在闪亮的应用程序中初始化渲染项目的默认值

    介绍 In a shinyApp 我想用动态输入渲染输出 我的问题是 使用shinydashboard使用不同的选项卡 默认值来自 Input 仅当激活相应选项卡时才会呈现 想想输入和输出选项卡 当使用时我得到同样的行为switch声明in
  • igraph - 将文本添加到社区图

    使用下面的代码 我可以在 igraph 提供的 空手道俱乐部 示例中生成社区图 请参见第一张图片 library igraph karate lt make graph Zachary wc lt cluster walktrap kara
  • 我想将两个变量合并为一个具有日期格式的变量

    我有一个包含几个月的字符列的数据集 MONTH 和指示年份的数字列 YEAR 为了将其用作面板数据 我需要将这些结合起来YEAR and MONTH转换为日期格式的变量 我尝试过改变变量MONTH转换为数字格式 然后合并MONTH与柱YEA
  • 在 R 中调用“boot”时没有数据

    我有一个包含很多列的数据框 第一列包含 系统 1 系统 2 等类别 第二列包含代表 0 和 1 的数字 请看下面 例如 SYSTEM Q1 Q2 S1 0 1 S1 1 0 S2 1 1 S2 0 0 S2 1 1 我在 R 中有这段代码来
  • 我们可以有更多错误(消息)吗?

    在 R 中 如果函数使用变量 有没有办法弹出错误消息 未在函数体内声明 即我希望有人标记这种类型的函数 aha lt function p return p n 看 如果某个地方碰巧有一个 n 变量 aha p 2 会给我一个 答案 因为
  • 没有适用于“filter_”的方法应用于类“c('double', 'numeric')”的对象

    使用下面的代码 我尝试过滤我的数据集 以便仅选择 CG less14 0 和 CG High14 0 的数据集 我收到错误 没有适用于 filter 的方法应用于 c double numeric 类的对象 我的代码有问题吗 married
  • 通过环境.yml 文件使用 conda 安装 R 包

    通常我会创建 conda 环境 例如 conda env create f environment yml conda activate env name 通常我使用 Python 工作 典型的environment yml简单的文件可能看
  • 在 R 中,将一列值与所有其他列进行比较

    我对 R 非常陌生 我有一个问题对于这里的专家来说可能非常简单 假设我有一个表 sales 其中包含 4 个客户 ID 123 126 和 4 个产品 A B C D ID A B C D 123 0 1 1 0 124 1 1 0 0 1
  • R 中带有自定义字段类的参考类?

    我想在另一个引用类中使用自定义引用类 但此代码失败 nameClass lt setRefClass nameClass fields list first character last character methods list ini
  • 使用 R 中的剪切函数对缺失值进行 NA 级别[重复]

    这个问题在这里已经有答案了 R 中的 cut 函数省略了 NA 但我想要一个缺失值的级别 这是我的 MWE set seed 12345 Y lt c rnorm n 50 mean 500 sd 1 NA Y1 lt cut log Y

随机推荐

  • 如何在R中生成多个矩阵

    我在 R 中得到了两个值列表 daily max car List 1 21 21 22 22 22 22 21 daily 0 8 List 2 16 17 17 17 18 17 17 尝试在 R Studio 中编写一个 For 循环
  • Rails 2 Mailer View 将 3D 添加到字符串之前

    我有一个非常旧的 Rails 应用程序 它试图为新用户发送验证电子邮件 但永远找不到令牌 因为由于某种原因 无论我如何生成链接 链接都会以 3D 形式添加到字符串前面 由于某种原因 它似乎还在标记的中间注入了一个 符号 这是一些带有输出的代
  • 使用 xPath 还是正则表达式?

    下面的两种方法都有相同的目的 扫描帖子的内容并确定是否至少有一个 img 标签具有包含正在测试的 关键字 的 alt 属性 我是 xPath 的新手 更愿意使用它 具体取决于该方法与正则表达式版本相比的昂贵程度 方法 1 使用 preg m
  • 不返回值的方法的起订量调用库(void 方法)

    我正在尝试模拟正在测试的类 以便在测试它们时可以对各个方法进行调用 这将允许我仅将方法设置测试为调用库 并且从测试方法中调用的所有其他方法 同一类 都将被模拟 但是 对于不返回值的方法 我无法执行此操作 对于不返回值的方法 智能感知只是不显
  • Google Fusion Tables With Maps - 将表字段链接到地图信息窗口

    我几乎是使用 Google Fusion Tables maps 的新手 我们有一个包含公司名称和地址的企业名录 我可以获得每个位置的地理编码地图标记 与表 设施名称 列并排显示 如何对设施名称进行编码 以便用户可以单击公司 设施名称并跳转
  • 无法在 IISExpress 中启动 ASP.NET Core RC2 Web 应用程序

    我在VS2015中创建了一个新的 ASP NET Core Web应用程序 NET Core 项目 它构建没有任何问题 所以我想对其进行测试运行 然而 启动时 它卡住并崩溃 并出现以下错误 Exception thrown System A
  • 为什么 foreach 这么慢?

    PHPBench com http www phpbench com 在每个页面加载上运行快速基准测试脚本 在 foreach 测试中 当我加载它时 foreach 的运行时间是第三个示例的 4 到 10 倍 为什么本机语言构造明显比执行逻
  • 在R中读写csv.gz文件

    有非常similar https stackoverflow com questions 9548630 read gzipped csv directly from a url in r关于这个主题的问题 但非在 R 下非常精确地处理这个
  • Mongodb:$HINT 的性能影响

    我有一个使用复合索引并在 id 上排序的查询 复合索引在索引末尾有 id 它工作正常 直到我添加 gt我的查询的子句 IE 初始查询 db colletion find field1 blabla field2 blabla sort id
  • 尽管参数与文档匹配,Svyby 返回错误

    我已经使用调查包定义了一个调查对象 一切正常 并向其中添加了两列 如下所示 anes svy lt update the update fn adds columns to a survey object anes svy object t
  • 当相应的 JTextfield 为空时,如何填充 JTable 中的所有项目

    我正在 Java 项目中设计一个高级搜索选项sqlite在 NetBeans 中 有5种不同JTextfields和 5 列 我想填充JTable具有相应的匹配标准 如果一个JTextfield为空 那么它应该选择该列的所有项目 我使用的查
  • 无法使用 Python 3 编写的 gzip.open() 将压缩文件上传到云存储

    当我尝试在 Cloud Shell 实例上使用 python 脚本将压缩的 gzip 文件上传到云存储时 它总是上传一个空文件 这是重现错误的代码 import gzip from google cloud import storage s
  • MongoDB + Neo4J vs OrientDB vs ArangoDB [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前正处于 MMO 浏览器游戏的设计阶段 游戏将包括一些实时位置的图块地图 因此每个单元格的图块数据 和通用世界地图 我更喜欢使用 Mongo
  • Rails 6 webpack 抛出“未捕获的引用错误:$未定义”

    大家好 我最近开始使用 ruby 2 6 5 开发 Rails 6 由于 Rails 6 引入了 webpack 所以我尝试使用 webpack 加载我的 js 文件 尽管我已经在 appliation js 中需要了 jquery 但我仍
  • 更改 VS Code 中的默认 Emmet 设置

    是否可以改变default 不适用于单个项目 命令的 Emmet 行为 在 Visual Studio 代码中 例如 我不想看到属性lang en in 标签 我也不想看到该字符串 也许我会想向 VS Code 中的默认 Emmet 行为添
  • 通过重定向让 Flash 哈希值持续存在

    我的基本用例是做一些处理 设置flash notice 然后重定向到新页面 据我所知 重定向会重置 flash 标签 如果我错了 请纠正我 有没有办法获得坚持呢 使用会话不是一种选择 我已经使用 cookie 解决了这个问题 但我认为必须有
  • 用 PDO 和准备好的语句替换 mysql_* 函数

    我总是做简单的连接mysql connect mysql pconnect db mysql pconnect host user pass if db echo strong Error strong Could not connect
  • unityLibrary:compileDebugJavaWithJavac

    所以当我单击 构建项目 时 它显示 零错误 但我仍然得到这个 Executing tasks clean unityLibrary assembleDebug launcher assembleDebug in project C User
  • C# 编译器编译 .txt .obj .java 文件

    using System class Program public static void Main Console WriteLine Hello World Console ReadLine 我将文件另存为1 java 2 obj an
  • ggplot2条形图:按数据顺序填充

    给出这样的数据框 sam lt data table title c rep Cat 8 rep Dog 4 fcat c A B C B B C C B C B B C fnum c seq 8 1 seq 4 1 labeltext c