我有一个如下所示的数据框:
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")
答案 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
。但是,它的尺寸不同。只有var1
和var2
的某些级别只是在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")