ggplot 分组条形图上的对数刻度出现问题

k_w*_*lon 5 r ggplot2

我正在尝试使用 R 中的 ggplot2 制作具有对数刻度的分组条形图。我的目标是在 R 中重新创建以下图。

在此输入图像描述

因为生成它的程序无法生成高分辨率图表。我需要一个对数刻度,因为数字范围从 1 到 1000 以上,以及介于两者之间的任何地方。

这是数据框的简化版本的片段,以及我一直在使用的代码。我已经能够使用 ggplot2 绘制绘图,但我的问题是数据中有很多 1 最终被绘制为 0,而 0 显示为 -1。这是我的 R 图的样子。

genus_counts <- read.table(text = "Genus variable value
1  Lepisosteus  JBGC462     0
2      Lepomis  JBGC462     6
3  Micropterus  JBGC462     2
4        Perca  JBGC462     2
5    Ictalurus  JBGC462     1
6  Lepisosteus   JBGC13    13
7      Lepomis   JBGC13     0
8  Micropterus   JBGC13     0
9        Perca   JBGC13     0
10   Ictalurus   JBGC13     0", header = TRUE)


ggplot(genus_counts, aes(x=Genus, y=value, fill=variable))+
      geom_bar(stat="identity", position="dodge")+
      scale_y_log10()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

从数学上讲,我理解为什么会出现这种情况(而且条形图上的对数刻度并不真正理想)。但是有没有另一种方法可以调整绘图(或我输入绘图的数字)以获得与我试图模拟的绘图更接近的匹配?

Mak*_*212 4

如果您使用它,它看起来像这样scale_y_sqrt(),这似乎与您的示例图非常匹配。我添加了一行值为 1000 的行,以说明您可以在大值旁边看到像 1 和 2 这样的小值。

在此输入图像描述