gpt4 book ai didi

r - ggplot条形图中的水平白线

转载 作者:行者123 更新时间:2023-12-04 03:55:08 24 4
gpt4 key购买 nike

当我使用 ggplot2 和 geom_col() 从 R 保存图形时或 geom_bar(stat = 'identity')它出现了一些难看的水平白线。
数据如下所示:

> 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 时,我得到一个如下所示的图:
graph using EPS
细白线穿过所有列。我认为这与它计算每个数据点然后堆积它们有关?
如果我用 geom_bar() 做代码它没有白线,但它没有显示我想要的数据。

最佳答案

当您使用 geom_col()您将获得每个数据值的一个条形段,这会创建您的白线。以下示例以夸张的方式显示了这一点。

library(tidyverse)

mtcars %>%
mutate(cyl = factor(cyl), am = factor(am)) %>%
ggplot(aes(x = cyl, y = 1, fill = am)) +
geom_col(color = "white")

最简单的解决方法是手动聚合,例如与 group_by()summarize() :
mtcars %>%
mutate(cyl = factor(cyl), am = factor(am)) %>%
group_by(cyl, am) %>%
summarize(count = n()) %>%
ggplot(aes(x = cyl, y = count, fill = am)) +
geom_col(color = "white")
#> `summarise()` regrouping output by 'cyl' (override with `.groups` argument)

创建于 2020-09-26 由 reprex package (v0.3.0)
注: geom_col()geom_bar(stat = "identity") 相同.

关于r - ggplot条形图中的水平白线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64055988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com