减少 ggplot2 中条形图组之间的空间

2023-12-08

我无法删除 geom_plot 中条形组两侧的额外空白。

我想做罗兰在这里取得的成就:删除条形图之间的空间ggplot2但是当我尝试实施他的解决方案时,我收到错误“警告消息:geom_bar()不再有binwidth范围。请用geom_histogram()反而。”

我将这行代码添加到我的图中(尝试不同的宽度):

  geom_histogram(binwidth = 0.5) +

返回“错误:stat_bin() 不得与 y 美学一起使用。”并且没有情节。

Data:

mydf<- data.frame(Treatment = c("Con", "Con", "Ex", "Ex"),
             Response = rep(c("Alive", "Dead"), times=2),
             Count = c(259,10,290,21))

 aPalette<-c("#009E73", "#D55E00")

Plot:

example<-ggplot(mydf, aes(factor(Response), Count, fill = Treatment)) + 
  geom_bar(stat="identity",position = position_dodge(width = 0.55), width = 
  0.5) + 
  scale_fill_manual(values = aPalette, name = "Treatment") + #legend title
  theme_classic() +
  labs(x = "Response", 
  y = "Count") + 
  scale_y_continuous(breaks = c(0,50,100,150,200,250,275), expand = c(0,0), 
  limits = c(0, 260)) +
  theme(legend.position = c(0.7, 0.3)) +
  theme(text = element_text(size = 15)) #change all text size

  example

Returns: enter image description here

Note:我不知道为什么收到“警告消息:删除了包含缺失值的 1 行 (geom_bar)”。但我并不关心它,因为使用我的实际数据不会发生这种情况 **编辑回复:注意 - 发生这种情况是因为我将 y 轴的限制设置为低于已删除条形的最大值。我不会更改代码,因此我不必重新绘制图形,但是更改

limits = c(0, 260) 

to

limits = c(0, 300)

将显示所有栏。万一其他人也有类似的问题。我将找到与此问题相关的帖子,并在可以链接答案时使此编辑更加简洁


如果我完全错过了您在这里想要完成的任务,请原谅我,但 ggplot 包含如此多空白的唯一原因是因为您将条形限制为特定宽度并增加了图形的大小。 图表内的空白是条形宽度和图表宽度的输出。

Using your original graph... orig graph

我们注意到有很多空白,但你们都把垃圾箱弄小了,把图表弄宽了。将空间视为垃圾箱和空白之间的折衷方案。期望一个带有小垃圾箱且没有空白的宽图是不合逻辑的。为了解决这个问题,我们可以减小图的大小或增加 bin 的大小。

首先,我们通过消除限制将 bin 大小恢复到正常状态。 这看起来很荒谬......

enter image description here

但是,通过查看您添加的“删除条形图之间的空间 ggplot2”链接,他首先所做的是删除约束和限制宽度。这样做会产生类似的图表......

similar graph

Including the graph from your link above.... enter image description here

And removing all of your constraints.... enter image description here

    example<-ggplot(mydf, aes(factor(Response), Count, fill = Treatment)) + 
  geom_bar(stat="identity",position = position_dodge()) +
  scale_fill_manual(values = aPalette, name = "Treatment") +
  theme_bw() +
  labs(x = "Response", y = "Count")

example

如果您的目标不是通过删除空格来使您的图表与链接中的图表相似,请告诉我,除此之外,我希望这会有所帮助。

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

减少 ggplot2 中条形图组之间的空间 的相关文章

  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对
  • 将逗号类分配给数据框中的多个列

    我有一个data frame有几个数字列我要 就像分配 逗号 类一样 这是需要的 因为我有一个中央数据框 我使用 Openxlsx 包过滤并保存到 Excel 并且需要comma类 以便数据在excel中显示为逗号格式 这是数据框 set
  • rvest如何通过id选择特定的css节点

    我正在尝试使用 rvest 包从网页中抓取数据 简单来说 html 代码如下所示 div class style div
  • 什么时候在“strsplit”中设置“perl=TRUE”不起作用(按预期或根本不起作用)?

    我只是在尝试优化一些代码时做了一些基准测试并观察到strsplit with perl TRUE is faster比跑步strsplit with perl FALSE 例如 set seed 1 ff lt function paste
  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 将密度曲线拟合到 R 中的直方图

    R中有没有可以将曲线拟合到直方图的函数 假设您有以下直方图 hist c rep 65 times 5 rep 25 times 5 rep 35 times 10 rep 45 times 4 看上去很正常 但其实是歪曲的 我想拟合一条倾
  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • 使用底格里斯河从纬度/经度获取人口普查区

    我有相对较多的坐标 我想获取其人口普查区 除了 FIPS 代码 我知道我可以使用以下命令查找各个纬度 经度对call geolocator latlon 已完成here https stackoverflow com questions 5
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 如何使用 R 中带引号的字符值内的序列读取 CSV?

    这是一个包含两个字符列的 CSV 文件 key value a 所有字符值都用双引号引起来 并且有一个顺序 在值之一内 转义引号加分隔符 我无法通过 read csv readr 中的 read csv 或 data table 中的 fr
  • dplyr,do(),从模型中提取参数而不丢失分组变量

    R 帮助中关于 do 的示例略有不同 by cyl lt group by mtcars cyl models lt by cyl gt do mod lm mpg disp data coefficients lt models gt d
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • R 中的发散积分可在 Wolfram 中求解

    我知道我以前问过同样的问题 但由于我是新来的 这个问题问得不好而且不可重现 因此我在这里尝试做得更好 如果我只编辑旧的 可能没有人会读它 我有一个想要积分的二重积分 ff lt function g t exp 16 g exp 8 t t
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • 在另一个 Rmd 中运行选定的块

    我已经在源 Rmd 文件中运行了分析 并且希望仅使用few来自源的块 我已经看到了一些关于从源 Rmd 中提取所有块的答案来自另一个 Rmd 中的 Rmd 文件的源代码 https stackoverflow com questions 4

随机推荐