我有以下数据集:
structure(list(Male = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L), .Label = c("126", "331", "548"), class = "factor"),
Urban = c(43.36, 44.52, 44.77, 49.08, 47.88, 39.24, 41.75,
48.63, 49.95, 43.57, 41.94, 37.74, 40.97, 45.56, 45.65, 53.62,
58.19, 51.29, 51.85, 55.28, 55.66, 54.14, 49.4, 49.87, 44.81,
44.23, 47.99, 45.46, 44.9, 42.09, 57.23, 51.97, 46.85, 51.02,
41.56, 51.23, 44.79, 50.87, 46.6, 56.22, 46.98, 49.04, 50.07,
46.32, 48.75), LowFreq = c(3640, 3360.8, 3309.4, 3101.1,
3263.3, 3070, 3153.3, 3594, 4220, 3670, 3367.9, 3156.7, 3431,
3440.5, 3276.7, 3526.7, 3592.9, 3588.2, 3614.1, 3619.2, 3625.8,
3574.8, 3650, 3678.2, 3655.6, 3675.3, 3681.3, 3680.7, 3647.5,
3670, 2973.9, 2948.8, 2715.2, 2980.4, 2693.6, 2888.4, 2718.5,
2971, 2752.2, 3008.5, 2718.4, 2860.2, 2848, 2893.3, 2940.2
), idx = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)), .Names = c("Male",
"Urban", "LowFreq", "idx"), row.names = c(NA, -45L), class = "data.frame")
我想创建一个情节,每个面板看起来有点像下面的面板:
但是,我想让所有面板堆叠在一起,面板之间没有空间,并且只有1个x轴,因为它们都共享一个共同的x轴 . 我使用以下代码生成此图:
awesome$idx<-ave(rep(1,nrow(awesome)),awesome$Male,FUN=seq_along)
free.y<-list(y=list(relation="free"))
require(lattice)
mA<-xyplot(Urban~idx|Male,data=awesome,type="l",scales=free.y)
mB<-xyplot(LowFreq~idx|Male,data=awesome,type="l",scales=free.y)
require(latticeExtra)
comb<-doubleYScale(mA,mB)
comb$x.between<-5
comb
我还希望从每个绘图的顶部删除标签'548','331'和'126,将线颜色更改为黑色并将其中一条线更改为虚线,并且只有1个y轴和x - 轴标签 .
如果可能的话,我希望在GGPlot2中实现这一点,但是Lattic可能是唯一的方法 . 您将提供的任何帮助将不胜感激!
3 回答
你说你只想要1个y轴,这意味着如果两个y轴都显示在它们的实际数据上,你就不会看到很多
Urban
变量(只有一条水平线) . 我的建议是缩放数据,以便可以轻松地显示和比较数据 . 但是,由于实际值不是这样可见的,所以我不会发布它 . 此外,网格之间的空间很小 - 我不知道是否或如何改变 . 也许您可以根据自己的需要进一步调整 .我想知道格
update
函数是否是你想要的:我知道这不是最低限度的答案,但这是我能得到的答案 . 我不得不将每个男性的数据分成3个数据帧,以便将这个数据删除 . 我把它放在一起使用这个问题的答案,其他问题的答案,手册和我自己的探索 . 我拿出轴标签,字体和字体大小的代码来减少代码 . 我希望这对那里的人有用 .