小编Gar*_*yDe的帖子

scale_fill_manual定义NA值的颜色

我尝试用ggplot2制作一个条形图,并且面临着为NA定义颜色的一些问题.

ggh <- ggplot(data=dat, aes(x=var1, fill=var2))+
  geom_bar(position="dodge")+
  scale_fill_manual(
    values=c("s"="steelblue", "i"="darkgoldenrod2", "r"="firebrick4", na.value="black"))
Run Code Online (Sandbox Code Playgroud)

在我的var2中,我有价值观c("s", "i", "r", NA).由于某些原因,我上面的代码scale_fill_manual对NA不起作用,即使它适用于所有其他值.

有人可以帮我找出原因吗?

谢谢您的帮助

r colors bar-chart ggplot2 na

8
推荐指数
1
解决办法
5264
查看次数

动态调整 ggplot2 图例的大小以适应 Quarto 中的文档类型

我正在使用 R 生成包含图形和表格的四开本文档。应渲染此文档以创建 HTML 和 PDF 文件。大部分都工作得很好。然而,我有很多图例的人物,并且在生成情节时,一些图例被切到了侧面。

图例与图中不符

我找到了调整图例大小的解决方案,以便所有图例都适合使用以下命令:

theme(legend.text = element_text(size = 6),
      legend.title = element_text(size = 11))
Run Code Online (Sandbox Code Playgroud)

这在 HTML 文档中给出了一个很好的图:

图例适合 HTML 文档

但是,当我尝试渲染 PDF 文档时,该图如下所示:

PDF文档的问题仍然没有解决

当然,我可以找到图形高度的解决方案,但我没有在我创建的可重现示例中包含该代码。不过,可以看出,传说还是被删减了。

这是四开文档的可复制示例:

---
title: "Reproducible Example"
format:
  html:
    toc: true
  pdf:
    toc: true
---

This is a reproducible example to present my problem.

```{r}
library(tidyverse)
library(cowplot)
library(ggnewscale)
library(ggtext)
```

## Create data

```{r}
species_df <- tibble(fish_species = factor(x = c("Rainbow trout<br />(<i>Oncorhynchus mykiss</i>)", "Brown trout<br />(<i>Salmo trutta fario</i>)", "Whitefish<br />(<i>Coregonus sp.</i>)", "Grayling<br />(<i>Thymallus sp.</i>)", "Other salmonid<br …
Run Code Online (Sandbox Code Playgroud)

plot r legend ggplot2 quarto

7
推荐指数
1
解决办法
585
查看次数

geom_area用不同的颜色填充

在使用geom_area进行绘图时,我遇到了一些问题。我有一个包含日期和计数的数据框,如下所示:

dates <- c("02/01/00", "02/04/00", "02/07/00", "02/10/00", "02/01/01", "02/04/01", "02/07/01", "02/10/01")
dat <- data.frame(date=as.Date(dates, "%d/%m/%y"), count=(sample(1:8)))
Run Code Online (Sandbox Code Playgroud)

然后,我添加了一个“ month”变量:

dat["month"] <- month(dat$date)
Run Code Online (Sandbox Code Playgroud)

然后是我的剧情:

plot <- ggplot(data=dat, aes(x=date, y=count, group=month, fill=month)) + geom_area()
Run Code Online (Sandbox Code Playgroud)

如果可以理解,结果并不会那么糟糕,它不应该填充从本月的第一次发生到次年的第二次发生的区域,而是要填充从这一发生到下个月的第二次发生的区域。同年。(为了更好地理解:这些线应与图表plot2相同(请参见下文),但每个新月都用不同的颜色填充)。

plot2 <- ggplot(data=dat, aes(x=date, y=count)) + geom_line()
Run Code Online (Sandbox Code Playgroud)

r fill ggplot2

4
推荐指数
1
解决办法
1717
查看次数

标签 统计

ggplot2 ×3

r ×3

bar-chart ×1

colors ×1

fill ×1

legend ×1

na ×1

plot ×1

quarto ×1