我正在尝试使用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()
从数学上讲,我理解为什么会出现这种情况(并且条形图上的对数刻度并不是很理想)。但是否有另一种方法可以调整绘图(或我输入到绘图中的数字),以更接近我试图模拟的绘图?
scale_y_sqrt()
。 - Mako212