以下是使用R代码实现的解决方案:

# 创建示例数据
data <- data.frame(
  year = rep(c(2010, 2011, 2012), each = 6),
  sex = rep(rep(c('Male', 'Female'), each = 3), 3),
  age = rep(c(20, 30, 40), 6),
  survival_prob = c(0.9, 0.8, 0.7, 0.95, 0.85, 0.75, 0.92, 0.82, 0.72, 0.88, 0.78, 0.68, 0.94, 0.84, 0.74, 0.91, 0.81, 0.71)
)

# 分组绘制折线图
plot_list <- split(data, data$year)
par(mfrow=c(length(plot_list), 1))

for (i in 1:length(plot_list)) {
  plot_data <- plot_list[[i]]
  plot_data <- split(plot_data, plot_data$sex)
  
  for (j in 1:length(plot_data)) {
    plot_data_subset <- plot_data[[j]]
    plot(x = plot_data_subset$age, y = plot_data_subset$survival_prob, 
         type = 'o', col = j, ylim = c(0, 1),
         xlab = 'Age', ylab = 'Survival Probability',
         main = paste('Year', unique(plot_data_subset$year), '-', unique(plot_data_subset$sex[j])))
    legend('bottomright', legend = unique(plot_data_subset$sex), col = 1:length(unique(plot_data_subset$sex)), pch = 1:length(unique(plot_data_subset$sex)))
  }
}

这段代码首先创建了一个示例数据框,其中包含年份、性别、年龄和生存概率四个变量。然后,代码将数据按年份分组,并通过循环遍历每个年份的数据。在每个年份的循环中,代码将数据再次按性别分组,并通过循环遍历每个性别的数据。最后,代码使用plot函数绘制每个性别的折线图,并将其放在单独的图形窗口中。

请注意,此代码假设数据已经按照年份、性别和年龄进行排序。如果数据未排序,您可能需要在进行分组之前对数据进行排序。此外,代码还添加了图例,以显示每个图形中的性别。

R代码:使用plot函数绘制年份分组的折线图,以性别为分组

原文地址: https://www.cveoy.top/t/topic/o6bB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录