具有多个图,多个条件和多行的图形

时间:2017-04-11 08:11:18

标签: r plot

我有一个如下所示的数据框:

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来制作图表吗?例如。只使用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")

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

您好我不确定您希望var3作为linetype。但是,它的尺寸不同。只有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