# your code goes here
# 加载绘图包
library(ggplot2)

# 原始数据
population <- c(54167, 55196, 56300, 57482, 58796, 60266, 61465, 62828,
                64653, 65994, 67207, 66207, 65859, 67295, 69172, 70499,
                72538, 74542, 76368, 78534, 80671, 82992, 85229, 87177,
                89211, 90859, 92420, 93717, 94974, 96259, 97542, 98705,
                100072, 101654, 103008, 104357, 105851, 107507, 109300, 111026,
                112704, 114333, 115823, 117171, 118517, 119850, 121121, 122389,
                123626, 124761, 125786, 126743, 127627, 128453, 129227, 129988,
                130756, 131448, 132129, 132802)
years <- 1949:2008
df <- data.frame(year = years, population = population)

# 线性模型
linear_model <- lm(population ~ year, data = df)
df$linear_fit <- predict(linear_model)

# 二次多项式模型
poly_model <- lm(population ~ poly(year, 2), data = df)
df$poly_fit <- predict(poly_model)

# 指数模型
df$log_population <- log(df$population)
exp_model <- lm(log_population ~ year, data = df)
df$exp_fit <- exp(predict(exp_model))

# 绘图
ggplot(df, aes(x = year)) +
  geom_point(aes(y = population), label = "原始数据") +
  geom_line(aes(y = linear_fit, color = "线性模型")) +
  geom_line(aes(y = poly_fit, color = "二次多项式模型")) +
  geom_line(aes(y = exp_fit, color = "指数模型")) +
  labs(x = "年份", y = "人口总数（万人）", title = "不同模型对1949 - 2008年人口数据的拟合") +
  scale_color_manual(values = c("blue", "red", "green"))
