我正在尝试制作一个多面图,其中每个“小面”都有两个y轴和对应于它们的两组数据。我几乎在这里阅读过有关双Y轴争议的每篇文章,但是在我的领域,这是一种非常常见的显示数据的方式,我只是希望能够使其发挥作用,该死。
我的数据如下:
ShellNum SampNum AccDist d13C d18O Species Age Type Univ
1 290819-1 290819-1 1 137.41 2.37 -0.85 larensis 17.4 Fossil UdN
2 290819-1 290819-1 2 132.41 2.42 -1.22 larensis 17.4 Fossil UdN
3 290819-1 290819-1 3 127.41 2.78 -1.25 larensis 17.4 Fossil UdN
4 290819-1 290819-1 4 120.71 3.05 -1.41 larensis 17.4 Fossil UdN
5 290819-1 290819-1 5 114.01 2.86 -1.47 larensis 17.4 Fossil UdN
6 290819-1 290819-1 6 107.31 2.81 -1.34 larensis 17.4 Fossil UdN
我正在用ShellNum(在约800行中共有25个不同的值)进行分析,我想在两个不同的轴上绘制d18O和d13C值(右侧为d18O,左侧为d13C)。最好是我想手动设置轴的限制,但是现在我试图在sec_axis中工作并对其进行缩放。
这是我的代码:
fossils.all <- ggplot(fossils, aes(x = AccDist)) +
geom_point(aes(y = d18O)) +
geom_line(aes(y = d18O)) +
geom_point(aes(y = d13C), color = "blue") +
geom_line(aes(y = d13C), color = "blue") +
scale_y_continuous(limits = c(-3, 0),
sec.axis = sec_axis(~.+2*2, name = "d13C")) +
facet_wrap( ~ ShellNum, ncol = 5)
fossils.all
我收到以下错误: “ geom_path:每个组仅包含一个观察值。您是否需要 调整小组的审美?”
第二个数据系列(d13C)甚至现在都没有显示在绘图上。我该怎么办?我会放弃使用基数R吗?
答案 0 :(得分:1)
请注意,添加辅助轴不会更改数据的映射方式。 d13C
中的正数仍将显示在主y轴的正区域中(如果将其限制限制为c(-3, 0)
,则将其隐藏,除非您自己移动这些值。
在这里,我将d13C
数据下移4,然后将副轴刻度上移4。
fossils.all <- ggplot(fossils, aes(x = AccDist)) +
geom_point(aes(y = d18O)) +
geom_line(aes(y = d18O)) +
geom_point(aes(y = d13C-4), color = "blue") +
geom_line(aes(y = d13C-4), color = "blue") +
scale_y_continuous(limits = c(-3, 0),
sec.axis = sec_axis(~.+4, name = "d13C")) +
facet_wrap( ~ ShellNum, ncol = 5) +
theme(axis.title.y.right = element_text(color = "blue"),
axis.text.y.right = element_text(color = "blue"))
fossils.all