我的数据如下:
Mat Year Pri
A 2007 324.79
A 2008 357.26
A 2009 410.26
A 2010 401.71
A 2011 397.44
A 2012 363.25
A 2013 363.25
A 2014 366.67
B 2007 717.95
B 2008 789.74
B 2009 769.23
B 2010 897.44
B 2011 888.89
B 2012 805.13
B 2013 805.13
B 2014 745.3
我想把A和B根据年份的价格变化放在一个图上显示,请教大虾门,怎样写Code会比较好点呢?如果A、B后面还有几万条数据,又要怎么写呢?[s:12][s:12]
请教:为什么R语言我用lines()不能在已有的图上添加新的图呢?
如果使用R自带Graphics可以这样
<br />
d <- read.table(textConnection("<br />
Mat Year Pri<br />
A 2007 324.79<br />
A 2008 357.26<br />
A 2009 410.26<br />
A 2010 401.71<br />
A 2011 397.44<br />
A 2012 363.25<br />
A 2013 363.25<br />
A 2014 366.67<br />
B 2007 717.95<br />
B 2008 789.74<br />
B 2009 769.23<br />
B 2010 897.44<br />
B 2011 888.89<br />
B 2012 805.13<br />
B 2013 805.13<br />
B 2014 745.3<br />
"),header=T)</p>
<p>plot(Pri ~ Year, data = d, type = "n")<br />
lines(Pri ~ Year, data = subset(d, Mat == 'A'), col = 'blue')<br />
lines(Pri ~ Year, data = subset(d, Mat == 'B'), col = 'red')<br />
</p>回复 第2楼 的 beader:如果我有几万个A、B、C...,这样添加不是很麻烦?有没有语句可以一次性搞定呢?另外,如果我对A、B、C、D...等有个 分类项的话,是不是可以通过分类(Group)来一次性画出一个分类的图呢?
例如,
Mat Year Pri Group
A 2008 5765.69 2
A 2009 5765.69 2
A 2009 5304.43 2
A 2009 5145.3 2
A 2010 7848.72 2
A 2011 7770.23 5
A 2011 7979.46 5
A 2011 7537.12 5
A 2012 7424.06 5
A 2012 7386.38 5
A 2013 7386.38 5
A 2014 7238.65 5
B 2011 33000 4
B 2011 32010 4
B 2012 31529.85 4
B 2012 31049.7 4
B 2013 31049.7 4
C 2008 5035.9 3
C 2009 5035.9 1
C 2009 5145.3 1
C 2010 5379.41 1
C 2010 5035.9 1
C 2010 5145.3 1
C 2010 5238.94 1
C 2011 5238.94 1
C 2011 5369.91 1
C 2012 5569.01 1
C 2012 5564.1 1
D 2008 5355.9 3
D 2009 5355.9 1
D 2009 5170.94 1
D 2010 5406.22 1
D 2010 540622 1
D 2010 5355.9 1
D 2010 5170.94 1
D 2010 5265.05 1
D 2011 5265.05 1
D 2011 5396.68 1
D 2012 5462.62 1
D 2012 5461.54 1
E 2009 14051.3 4
E 2009 12786.32 4
E 2009 13176.92 4
E 2010 13690.82 4
E 2010 13382.48 4
E 2011 13248.66 4
E 2011 12851.2 4
E 2012 12658.43 4
E 2012 12465.66 4
E 2013 12465.66 4
F 2009 14051.3 4
F 2009 12786.32 4
F 2010 13326.55 4
F 2010 13002.41 4
F 2011 12872.38 4
F 2011 12486.21 4
F 2012 12298.92 4
F 2012 12111.62 4
F 2013 12111.62 4
G 2011 37688.03 4
G 2011 35239.32 4
G 2012 34710.73 4
G 2012 34182.14 4
G 2013 34182.14 4
H 2013 10290.6 3
H 2014 9776.07 3
I 2013 7063.38 3
I 2014 6710.21 3
J 2013 8107.31 3
J 2014 7701.94 3
K 2013 7366.45 3
K 2014 6998.13 3
K 2013 7366.45 3
K 2014 6998.13 3
L 2013 8107.31 3
L 2014 7701.94 3
M 2012 35239.32 4
M 2012 34710.73 4
M 2012 34182.14 4
M 2013 34182.14 4
ggplot2可以
我来回答一下原因,或不出来是因为你的数据没有显示,A和B明显pri范围差别太大了,用ggplot2解决这个正好
<br />
d <- read.table(textConnection("<br />
Mat Year Pri<br />
A 2007 324.79<br />
A 2008 357.26<br />
A 2009 410.26<br />
A 2010 401.71<br />
A 2011 397.44<br />
A 2012 363.25<br />
A 2013 363.25<br />
A 2014 366.67<br />
B 2007 717.95<br />
B 2008 789.74<br />
B 2009 769.23<br />
B 2010 897.44<br />
B 2011 888.89<br />
B 2012 805.13<br />
B 2013 805.13<br />
B 2014 745.3<br />
"),header=T)<br />
library(ggplot2)<br />
ggplot(data=d,aes(x=Year,y=Pri,group=Mat,color=Mat))+geom_point()<br />
</p>