R ggplot条形图中的水平白线
当我使用ggplot2和R ggplot条形图中的水平白线,r,image,ggplot2,R,Image,Ggplot2,当我使用ggplot2和geom_col()或geom_bar(stat='identity')从R保存一个图形时,它会出现一些难看的水平白线 数据如下所示: > head(mouse_track_data) session site BM.pile ox.pile type mice skinks geckos 1 dec_2018 1 1 1.10 control FALSE TRUE FALSE 2 dec_201
geom_col()
或geom_bar(stat='identity')
从R保存一个图形时,它会出现一些难看的水平白线
数据如下所示:
> head(mouse_track_data)
session site BM.pile ox.pile type mice skinks geckos
1 dec_2018 1 1 1.10 control FALSE TRUE FALSE
2 dec_2018 1 2 1.12 design1 FALSE FALSE FALSE
3 dec_2018 1 3 1.11 control FALSE FALSE FALSE
4 dec_2018 1 4 1.80 control FALSE FALSE FALSE
5 dec_2018 1 5 1.60 design1 FALSE FALSE FALSE
6 dec_2018 1 6 1.50 control FALSE FALSE FALSE
这是我的密码:
ggplot(data = mouse_track_data, aes(x = session, y = as.numeric(mice), fill = type)) +
geom_bar(stat='identity') +
theme_classic() +
theme(text = element_text(size=15),
axis.text.x = element_text(angle = 45, hjust = 1)) +
xlab("Tracking session") +
ylab("Number of tunnels with mouse tracks") +
theme(axis.title.y = element_text(margin = margin(t = 0, r = 7, b = 0, l = 0))) +
theme(axis.title.y = element_text(margin = margin(t = 0, r = 7, b = 0, l = 0))) +
theme(legend.title = element_blank(), legend.position = c(-2, -2)) +
scale_fill_manual(values = c("control" = "#37a1c1", "design1" = "#9ce2cb", "design2" = "#445a9c"),
labels = c(" Control", " Single grade", " Mixed grade")) +
scale_x_discrete(labels = c('Dec 2019', "April 2019", "Nov 2019", "March 2020")) +
scale_y_continuous(breaks=seq(0, 50, 10), limits = c(0,52), expand = c(0,0)) +
theme(axis.line = element_blank())
有了这个,或者使用geom_col()
,当导出为ESP或PDF时,我得到一个如下图:
> head(mouse_track_data)
session site BM.pile ox.pile type mice skinks geckos
1 dec_2018 1 1 1.10 control FALSE TRUE FALSE
2 dec_2018 1 2 1.12 design1 FALSE FALSE FALSE
3 dec_2018 1 3 1.11 control FALSE FALSE FALSE
4 dec_2018 1 4 1.80 control FALSE FALSE FALSE
5 dec_2018 1 5 1.60 design1 FALSE FALSE FALSE
6 dec_2018 1 6 1.50 control FALSE FALSE FALSE
所有的柱子上都有细细的白线。我想这与计算每个数据点,然后将它们堆积起来有关
如果我使用
geom\u bar()
进行编码,它没有白线,但不会显示我想要的数据。当使用geom\u col()
时,每个数据值会得到一个条段,这会创建白线。下面的示例以夸张的方式显示了这一点
library(tidyverse)
mtcars %>%
mutate(cyl = factor(cyl), am = factor(am)) %>%
ggplot(aes(x = cyl, y = 1, fill = am)) +
geom_col(color = "white")
最简单的解决方法是手动聚合,例如使用groupby()
和summary()
:
由(v0.3.0)于2020年9月26日创建
注意:
geom\u col()
与geom\u bar(stat=“identity”)
以后,请提供一个完全可复制的示例,并删除与您的问题无关的所有绘图方面。例如,所有的主题代码都是无关的。请参阅我的答案,了解最小可复制示例的示例。