首页 > 解决方案 > 使用带有标签的 geom_line() 在 ggplot2 中绘图

问题描述

我正在尝试使用 ggplot2 绘制此数据集,将每个国家/地区的名称放在每一行 geom_line() 中,并使用 x 轴(年份)和 y 轴(带有来自每个国家/地区的相关数据)。

要编辑的数据集

这就是我到目前为止所拥有的。我想在每一行中包含国家名称。问题是每个国家的数据都在单独的列中。

标签: rggplot2labelgeom-text

解决方案


如果你想使用ggplot你应该把你的数据变成“更长”的格式。使用包tidyr

df %<>%
  pivot_longer(cols=matches("[^Year]"),
               names_to="Country", 
               values_to="Value")

给你

# A tibble: 108 x 3
    Year Country       Value
   <dbl> <chr>         <dbl>
 1  1995 Argentina   4122262
 2  1995 Bolivia     3409890
 3  1995 Brazil     36276255
 4  1995 Chile       2222563
 5  1995 Colombia   10279222
 6  1995 Costa_Rica  1611055
 7  1997 Argentina   4100563
 8  1997 Bolivia     3391943
 9  1997 Brazil     35718095
10  1997 Chile       2208382

基于此,很容易使用以下方法为每个国家绘制一条线ggplot2

ggplot(df, aes(x=Year, y=Value, color=Country)) + 
  geom_line()

推荐阅读