1

我有一个简单的数据框:

> 嗯
  年 y1 y2
1 2005 4.50 4.92
2 2006 年 4.89 6.21
3 2007 年 6.63 6.68
4 2008 年 4.89 4.60
5 2009 年 16.56 15.16
6 2010 年 17.98 17.73
7 2011 25.92 19.85

我想在 x 轴上绘制一个折线图,y1 和 y2 作为两条单独的线,黑色和不同的线型。如何获得显示 y1 代表“Bob”而 y2 代表“Susan”的图例?

这是我的尝试,它产生了以下图表(没有图例):

ggplot(ih, aes(x = year)) + geom_line(aes(y=y1), linetype="dashed") + 
  geom_line(aes(y=y2)) + 
  labs(x="Year", y="Percentage", fill="Data") + 
  geom_point(aes(y=y1)) + 
  geom_point(aes(y=y2))

在此处输入图像描述

感谢您的任何帮助!今天是我使用 R 的第一天!

4

1 回答 1

5

您应该将数据转换为长格式,例如使用melt()库中的函数reshape2,然后用于在. 所以会自动生成图例。要删除图例中的名称,您可以添加.variablelinetype=aes()variablescale_linetype("")

library(reshape2)
ih.long<-melt(ih, id.vars="year")

ih.long
   year variable value
1  2005       y1  4.50
2  2006       y1  4.89
3  2007       y1  6.63
4  2008       y1  4.89
5  2009       y1 16.56
6  2010       y1 17.98
....

ggplot(ih.long,aes(year,value,linetype=variable))+geom_line()+geom_point()+
    scale_linetype("")

在此处输入图像描述

于 2013-04-03T18:29:47.000 回答