我想仅将几何标签应用于每个系列的最后一个值数据点。\n这是我的数据库:
\n\n这是我的代码:
\n\npaises <- c("Peru", "Brazil", "Colombia", "Ecuador", "Chile", "Argentina", "Uruguay", "Paraguay", "Bolivia")\n\ndata <- jhu_sitrep_import(source = "confirmed") %>%\n jhu_sitrep_cleandb() %>%\n filter(country_region %in% paises) %>%\n filter(value>0) %>%\n group_by(country_region) %>%\n mutate(start = first(dates),\n d_start = dates-start,\n per = ifelse(country_region =="Peru","Per","Otros"),\n max_cases = max(value)) %>%\n filter(max_cases>30)\n\ndata %>%\n filter(per =="Otros") %>%\n ggplot(aes(x = d_start, y = value, group=country_region)) +\n geom_line(aes(col = country_region)) +\n geom_point(aes(col = country_region, shape = country_region)) +\n geom_line(dat = data %>% filter(per=="Per"), col = "red") +\n geom_label(aes(y = value, label =value), vjust = 0.5) +\n geom_label(aes(y = value, label =value ), vjust = -0.5) +\n geom_point(dat = data %>% filter(per=="Per"), col = "red") +\n geom_text(data = data %>% slice(n()) %>% filter(country_region!="Peru"),\n aes(y = value, label = country_region, col = country_region), vjust=-.5) +\n geom_text(data = data %>% slice(n()) %>% filter(country_region=="Peru"),\n aes(y = value, label = country_region), col = "red", vjust=-.5) +\n scale_fill_discrete_qualitative(palette="Pastel 1", nmax = 14, order = 5:14) +\n labs(color = "Paises", x = "D\xc3\xadas desde primer caso", y = "Numero de casos", shape = "Paises") +\n scale_y_log10() + \n theme(legend.position = "bottom")\nRun Code Online (Sandbox Code Playgroud)\n\n因此,通过我的代码,我可以获得每个值数据点的值。我只想要最后一个值的标签。
\n\n\n您希望将数据过滤/子集到最后一点,然后将其传递到geom_label()usingdata参数中。
我在下面包含了一个 reprex(可重现的示例)。
library(tidyverse)
cars <- rownames_to_column(mtcars, var = "model")
ggplot(cars, aes(x = mpg, y = disp)) +
geom_point() +
geom_label(data = filter(cars, model == last(model)), aes(label = model))
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020-03-20 创建