r - 在 R 中使用 ggplot2 在图中添加注释
问题描述
我有一个 df,其中包含有关从 2020 年 4 月 11 日到 2021 年 7 月 1 日(YYYY-MM-DD)每天死于某种疾病的滚动平均值的信息。
head(df)
DATE DEATHS_RA
1 2020-04-11 1.666667
2 2020-04-12 2.166667
3 2020-04-13 2.333333
4 2020-04-14 2.500000
5 2020-04-15 2.666667
6 2020-04-16 2.833333
有了这段代码,我得到了这个基本图表。
try1 <- ggplot(df) +
aes(x = DATE, y = DEATHS_RA) +
geom_line(size = 1, colour = "#871709") +
theme_minimal()+
labs(x="",y="")
但我想知道是否可以添加如下图所示的注释(我从互联网上提取的)。
我尝试使用我在不同教程中寻找的以下代码,ggplot2
但结果与上图中的相同,就好像 R 无法识别我在geom_label
.
try1+
geom_label(label="Look at this!", x=2021-05-01,y=10,
hjust = 0,
vjust = 0.5,
lineheight = 0.8,
colour = "#555555",
fill = "white",
label.size = NA,
size = 6
)
解决方案
你DATE
的 is of class Date
,这使得线图成为可能。因此,如果要注释,还需要将其作为类输入Date
:
df = structure(list(DATE = structure(c(18363, 18364, 18365, 18366,
18367, 18368), class = "Date"), DEATHS_RA = c(1.666667, 2.166667,
2.333333, 2.5, 2.666667, 2.833333)), row.names = c("1", "2",
"3", "4", "5", "6"), class = "data.frame")
我们创建一个注释数据框来包含您的标签,稍后会很有用:
ann = data.frame(DATE = as.Date("2020-04-12"),
DEATHS_RA=2.16,label = "Look at this!")
它看起来像这样:
try1+
geom_label(data = ann,aes(label=label))
要使用箭头,我们需要ggrepel:
library(ggrepel)
try1+
geom_label_repel(data = ann,aes(label=label),box.padding = 5)
推荐阅读
- azure - 如何使用 Terraform 使用 Log Workspace 实现 Azure Monitoring Alert VM Heartbeat
- java - maven-dependeny-plugin 3.2.0 下载 struts 1.3.8
- vue.js - 如何在 Vue 中使用 v-bind 和 v-on 绑定自定义命名模型?
- python - 测试 Selenium 以登录我的 Twitter:它不允许您检查元素
- r - 在 R 中删除准空行
- winapi - 使用 WinAPI 获取串行通信溢出错误指示
- git - 防止单个文件被 git 提交覆盖
- azure-powershell - PowerShell:在 where-object 中使用变量作为脚本块
- qliksense - 非零数后的零数
- swift - 400 Invalid_request 您无法登录此应用,因为它不符合 Google 的 OAuth 2.0 保护应用安全政策