在 R 中创建具有多条时间序列线的绘图

问题描述 投票:0回答:1

我有一个数据集,其中包括以下内容:年份(从 2000 年到 2020 年)、发病率(每年某种疾病的发病次数)和地点(30 个地点,29 个国家/地区,1 个全球数字)。

现在,我想使用 ggplot 在 R 中创建多时间序列图。我希望全球数字的线条与其他国家/地区不同,而其他国家/地区遵循彩虹调色板并具有实线类型,我希望全球数字的线条为黑色和虚线。

我编写了以下代码,但我无法进一步自定义它:

ggplot(df, aes(x=year, y=incidence) + 
  geom_line(aes(color=location)
r ggplot2 linechart
1个回答
0
投票

实现所需结果的一个选项是使用自定义颜色和线型调色板,可以通过

scale_xxx_manual
将其应用于您的绘图。

使用一些基于

gapminder
数据集的虚假示例数据:

library(ggplot2)
library(dplyr, warn = FALSE)
library(gapminder)

# Make example data
set.seed(123)

locs_select <- sample(unique(gapminder$country), 29)

df <- gapminder |>
  select(year,
    location = country,
    incidence = lifeExp
  )

df <- df |>
  summarise(
    location = "Global",
    incidence = mean(incidence), .by = year
  ) |>
  bind_rows(
    filter(df, location %in% locs_select)
  )
###

pal_color <- scales::hue_pal()(30)
pal_lty <- rep("solid", 30)
names(pal_color) <- names(pal_lty) <- sort(unique(df$location))
pal_color["Global"] <- "black"
pal_lty["Global"] <- "dashed"

ggplot(df, aes(x = year, y = incidence)) +
  geom_line(aes(color = location, linetype = location)) +
  scale_color_manual(values = pal_color) +
  scale_linetype_manual(values = pal_lty)

© www.soinside.com 2019 - 2024. All rights reserved.