使用position_dodge时出现geom_text问题

2023-11-24

I saw this答案但无法复制它。

我得到的数据是这样的:

df = data.frame(x = rep(sample(letters, 4), 2), 
                y = round(runif(8,1,100),0), 
                z = c(rep("group1",4), rep("group2",4)))

# I then add a 'percent' column like so:

df$perc[1:4] = df$y[1:4] / sum(df$y[1:4])
df$perc[5:8] = df$y[5:8] / sum(df$y[5:8])

# Which I then convert like so:
df$perc = paste(round(df$perc * 100, 1), "%", sep="")

# The ggplot:
library(ggplot2)

ggplot(df) + 
geom_bar(aes(z, y, fill=x), position="dodge", stat="identity") + 
geom_text(aes(z,y,label=perc), position=position_dodge(width=1), size=4)

Result:

enter image description here

我不明白我做错了什么。


只需一个小小的改变就可以解决这个问题。您需要指定group=x在你的里面geom_text(aes(...)) call.

ggplot(df) + 
geom_bar(aes(z, y, fill=x), position=position_dodge(width=1), stat="identity") + 
geom_text(aes(z,y,label=perc, group=x), position=position_dodge(width=1), size=4)

enter image description here

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

使用position_dodge时出现geom_text问题 的相关文章

随机推荐

  • Python ctypes 未在 Mac OS X 上加载动态库

    我有一个 C 库repeater so我可以通过以下方式从 Linux 中的 Python 加载 import numpy as np repeater np ctypeslib load library librepeater so 但是
  • 使用 GCC 的链接器错误,包括。用于 binutils 和 textinfo

    我每次在编译程序 配置和安装一些东西时都会收到此错误 例如binutils 文本信息等 usr local bin ld this linker was not configured to use sysroots collect2 err
  • 使用 Apple Pay 创建令牌,无需付款

    我有两个问题 有没有办法使用 Apple Pay 创建 STPToken 而无需付款 在我的 iOS 应用程序中 客户在注册时要么输入付款信息 要么决定使用 Apple Pay 当客户决定购买时 注册后的某个时间 他们的卡将自动扣款 我可以
  • Kdevelop 步骤和断点不起作用

    我需要使用步骤 单步执行 单步执行指令 和断点 但选项 跳过 跳过指令 等 在菜单 运行 中被禁用 当我在程序中放置断点时 程序不会在此断点处停止 我发现我必须关闭编译器和链接器的优化 但我不知道如何关闭 Kdevelop 4 4 1 中的
  • ASP.NET:视图状态和以编程方式添加用户控件

    当使用 LoadControl string path 以编程方式添加用户控件时 在用户控件的页面生命周期中 它何时使用其视图状态初始化其子控件 我问这个问题是因为我正在以编程方式加载的用户控件之一有一个 TextBox 控件 该控件未通过
  • 使用批处理文件命名驱动器

    我正在寻找一个命令来重命名我在 WinXP 中每次启动时映射的几个驱动器 我已经完成了映射部分 现在我有兴趣使用自定义名称以编程方式命名它们 这样我就可以保持它们的一致性 我放弃了 DOS 转而学习 PowerShell 最终的结果是这样的
  • Node.js“require”语句中的大括号(大括号)

    我试图理解下面两个 require 语句之间的区别 具体来说 其目的是什么 s 缠绕着ipcMain const electron require electron const ipcMain require electron 他们似乎都分
  • 如何在 Android 中缩放文本视图?

    谁能指导我在android中的多个视图上执行放大和缩小操作 我需要在图像 文本视图的触摸上执行放大和缩小操作 我的父级布局应该是什么 这是在触摸图像视图时缩放图像的代码 如何缩放文本视图 请帮我 These matrices will be
  • 所有 OLE 错误代码的列表

    是否有所有 OLE 错误代码的列表 None
  • 如何跟踪 WCF 序列化问题/异常

    我偶尔会遇到这样的问题 在 WCF 序列化期间 从我的 OperationContract 返回 DataContract 后 抛出应用程序异常 我收到的唯一 且意义不大 的消息是 System ServiceModel Communica
  • 发送至特定远程 IP 的第一个 UDP 消息丢失

    我正在开发一个基于 LAN 的解决方案 其中一个 服务器 必须控制多个 玩家 我选择的协议是 UDP 因为它很简单 我不需要连接 我的流量仅由时不时的短命令组成 我想使用混合广播消息进行同步 并使用单个目标消息进行玩家单独的命令 多播 TC
  • HTML 输入不允许数字

    现在我有一个像这样的输入字段
  • 在 SVN 中合并后我无法提交更改

    使用 TortoiseSVN 合并项目的两个分支后 我在提交更改时遇到了问题 详细信息如下 我做了一个合并分支到主干project我正在努力 Project包括主存储库和与主存储库联合的库 如下所示svn 外部 图书馆也有分支 作为子目录p
  • 如何将本地变量传递给远程“Invoke-Command”? [复制]

    这个问题在这里已经有答案了 我正在尝试使用以下命令检索位于远程服务器上的文件的哈希值Invoke Command 当我给出如下完整路径时 它工作得很好 Invoke Command ComputerName winserver Script
  • x86 上的堆栈对齐

    在 x86 32 位 平台上 当运行使用 gcc 4 8 1 编译的代码时 出现了一个神秘的总线错误 march pentium4 我将问题追溯到 SSE 指令 movdqa xmm5 0x50 esp esp 0xbfffedac mov
  • 如何在 Alamofire 中处理多个网络调用

    我需要在视图控制器中调用2个api来从服务器获取一些数据 我希望它们同时启动 但只有当它们都返回时才会触发下一步 不管成功还是失败 我可以想出两种解决方案 1 将它们链接在一起 调用api1 在api1的结果处理程序中调用api2 等待ap
  • 如何将函数应用于 Pandas 中的多列[重复]

    这个问题在这里已经有答案了 我有一堆需要在 Pandas 中清理的列 我写了一个函数来进行清理 我不确定如何将相同的函数应用于许多列 这是我正在尝试的 df Passengers Revenue Cost apply convert das
  • Passport.deserializeUser 为每个 HTTP 请求执行 DB(sequelize)命令

    我使用sequelize作为ORM和passport js passport local 进行身份验证 我注意到每个 HTTP 请求都会产生一个单独的数据库命令 我开始研究 deserializeUser 函数 加载单个页面时 这就是我得到
  • 如何获取数组的所有边?

    我有一个 n x n 数组 并且想要接收其轮廓值 例如 4 5 6 7 2 2 6 3 4 4 9 4 8 1 6 1 由此 我会得到这个 4 5 6 7 3 4 1 6 1 8 4 2 见粗体部分 所以本质上 什么是最高效的获取 2D 数
  • 使用position_dodge时出现geom_text问题

    I saw this答案但无法复制它 我得到的数据是这样的 df data frame x rep sample letters 4 2 y round runif 8 1 100 0 z c rep group1 4 rep group2