我是R的新手,在绘图方面一直遇到麻烦。
我正在尝试使用以下方法创建线图: X轴上的$ YEAR Y轴上的$ METRIC 每个国家/地区使用不同颜色的线(也就是说,同一地块上共有3条线)
$ COUNTRY是一个具有3个级别的因子
COUNTRY YEAR METRIC
USA 2000 14.874
USA 2001 15.492
USA 2002 13.091
USA 2003 14.717
CAN 1999 15.031
CAN 2000 14.343
CAN 2001 12.972
CAN 2002 13.216
SWE 1999 14.771
SWE 2000 17.033
SWE 2001 15.932
SWE 2002 14.516
SWE 2003 15.655
当我用...创建情节
图(df $ YEAR,df $ METRIC,col = df $ COUNTRY,type =“ p”)
我得到了一个图,其中每个(x,y)组合都有点,并且每个水平的因子$ COUNTRY具有不同的颜色
但是,当我尝试为每个国家/地区设置一行时,
图(df $ YEAR,df $ METRIC,col = df $ COUNTRY,type =“ l”)
我得到了一条不间断的路线,该路线以“ USA”的4个观测开始,然后回到下一个国家的第一年(“ CAN”)。
有人可以解释为什么会这样吗? 是否可以仅使用预先构建的功能来创建该图?
在此先感谢您的帮助。
答案 0 :(得分:1)
除了我上面的评论之外,这是一个基本的base
实现。如果最初您的$COUNTRY
是一个因素(is.factor(df$COUNTRY)
),则可以跳过ctryfctr
的创建,并将行调用更改为lines(..., col=x$COUNTRY[1])
:
df$ctryfctr <- factor(df$COUNTRY)
plot(NA, xlim=range(df$YEAR), ylim=range(df$METRIC))
for (x in split(df, df$COUNTRY)) lines(x$YEAR, x$METRIC, col=x$ctryfctr[1])
答案 1 :(得分:0)
由于您似乎混淆了一些概念,所以我认为稍微澄清一下会有所帮助。
R的基本绘图软件包非常适合在没有先验知识的情况下快速草绘,但是使用ggplot2软件包可以更轻松地定义更复杂的绘图。您可以使用install.packages("ggplot2")
安装它。使用ggplot2,您可以按照已经尝试过的方式以及r2evans指出的方式对行进行分组。
library(ggplot2)
ggplot(df) + geom_line(aes(YEAR, METRIC, group=COUNTRY, color=COUNTRY))
因此,您告诉ggplot您正在使用df作为数据。您可以在geom_line
内为aes()
定义x和y轴。使用group=
定义分组变量,使用color=
定义每行使用不同的颜色。
希望您和R和ggplot2在一起愉快!