2017-04-11 115 views
1

我有一个数据帧,看起来像这样:R图形与多条曲线,多个条件和多行

var1 var2 var3 year value 
AT EA 1 02 ... 
AT EA 1 03 ... 
AT XY 2 02 ... 
AT XY 2 03 ... 
BE EA 1 02 ... 
BE EA 1 03 ... 
BE XY 2 02 ... 
BE XY 2 03 ... 

值仅仅是一个数值变量。我想要做的是产生一个图形,显示y轴上的值和x轴上的年份。此外,我想:

  • 一个情节为VAR1的每个级别(这将是在xyplot因素条件)

  • VAR2的每个级别应该有不同的颜色

  • 每个级别VAR3的应该是不同类型的线图的(连续相对于虚线)

另外,能告诉我R键只是使用的VAR1和VAR2吨一定水平o制作图表。例如。只使用那些var1为“AT”或“FR”的观察值,但不使用“BE”或“DE”的观察值? var1和var2在data.frame中都有13个级别。

编辑:data.frame可以下载here。我试过以下内容:

library(lattice) 
xyplot(value~year | factor(report_ctry), data=EA17_flows_ex, groups=factor(indicator), type="l") 
+0

欢迎堆栈溢出!请阅读有关的信息[如何提出一个很好的问题( http://stackoverflow.com/help/how-to-ask)以及如何给出一个[可重现的例子](http://stackoverflow.com/questions/5963269)。这会让其他人更容易帮助你。 – zx8754

+1

我已经编辑了开放文章以包含data.frame和我试过的代码。 – Laubsauger

回答

0

也许有些事情是沿着?代码未经测试。您应该提供一个小例子,以及您尝试过并且无法使用的最佳结果。

library(ggplot2) 

# will display only those in the list, AT and FR in this case 
subxy <- xy[xy$var %in% c("AT", "FR"), ] 

ggplot(subxy, aes(x = year, y = value, color = var2, group = as.factor(var3))) + 
    theme_bw() + 
    geom_point(position = "jitter", width = 0.25) + 
    facet_wrap(~ var1) 
0

您好我不知道你怎么想var3linetype。但是,它的工作原理不同。只具有一定的水平var1var2刚子集ggplot内的数据框或单独(例如subset(dataframe,var1 %in% [list with var1-values you want to look at] & var2 %in% [list with var2-values you want to look at]))

library("ggplot2") 

plot = ggplot(dataframe,aes(year,value))+ 
     geom_point(aes(colour=var2,size=var3))+facet_wrap(~var1) 

ggsave("plot.png",plot,width=200,height=200,unit="mm") 

enter image description here

+0

我想要一个显示依赖于var1,var2,a的变量值的线图nd var3。我已经添加了data.frame的链接以及我在开篇文章中尝试的代码。如果我使用“线型”而不是“尺寸”,您的解决方案就可以工作。谢谢。 :) – Laubsauger