我尝试用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 生成包含图形和表格的四开本文档。应渲染此文档以创建 HTML 和 PDF 文件。大部分都工作得很好。然而,我有很多图例的人物,并且在生成情节时,一些图例被切到了侧面。
我找到了调整图例大小的解决方案,以便所有图例都适合使用以下命令:
theme(legend.text = element_text(size = 6),
legend.title = element_text(size = 11))
Run Code Online (Sandbox Code Playgroud)
这在 HTML 文档中给出了一个很好的图:
但是,当我尝试渲染 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) 在使用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)