使用带标签的 geom_line() 在 ggplot2 中绘图

Ploting in ggplot2 with geom_line() with label

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

The DataSet to Edit

This is what I have so far. I wanted to include the name of the country in each line. The problem is that each country has its data in a separate column.

如果您想使用 ggplot,您应该将数据转换为 "longer" 格式。使用包 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()

你算是回答了你的问题。您需要包 reshape 将所有国家/地区合并到一个列中。

    Year<-c(1991,1992,1993,1994,1995,1996)
Argentina<-c(235,531,3251,3153,13851,16513)
Mexico<-c(16503,16035,3516,3155,30351,16513)
Japan<-c(1651,868416,68165,35135,03,136816)

df<-data.frame(Year,Argentina,Mexico,Japan)

library(reshape2)

df2<- melt(data = df, id.vars = "Year", Cont.Val=c("Argentina","Mexico","Japan"))

library(ggplot2)

ggplot(df2, aes(x=Year, y=value, group=variable, color=variable))+
  geom_line()