使用下面的示例数据,我想使用 R 中的任何合适的包重现此链接底部的图(下图所示)https://nsidc.org/data/nsidc-0064。
忽略样本图中的红线。
df=structure(list(year = c(2006L, 2007L, 2008L, 2009L, 2010L, 2011L,
2012L, 2013L, 2016L, 2017L), day = c(16L, 3L, 25L, 23L, 15L,
22L, 14L, 27L, 27L, 1L), day.month = c("16-May", "03-Jun", "25-May",
"23-Jun", "15-Apr", "22-May", "14-May", "27-May", "27-Mar", "01-May"
)), class = "data.frame", row.names = c(NA, -10L))
感谢任何建议!
答案 0 :(得分:0)
嗨,这很棘手,辅助 y 轴确实花了一段时间。
这段代码做了一些类似的事情,不同之处在于我无法得到我想要的图形的原点,轴标签与点在一起,而不是有规律地间隔。
library(tidyverse)
df=structure(list(year = c(2006L, 2007L, 2008L, 2009L, 2010L, 2011L,
2012L, 2013L, 2016L, 2017L), day = c(16L, 3L, 25L, 23L, 15L,
22L, 14L, 27L, 27L, 1L), day.month = c("16-May", "03-Jun", "25-May",
"23-Jun", "15-Apr", "22-May", "14-May", "27-May", "27-Mar", "01-May"
)), class = "data.frame", row.names = c(NA, -10L))
ggplot() +
geom_line(data = df, aes(x = year, y = day),
group = 1, colour = 'light blue') +
ylab("Day of year") +
theme(axis.line = element_line(colour = "black")) +
geom_line(data = df, aes(x = year, y = mean(day), group = 1), colour = 'black') +
scale_x_continuous(limits = c(2006, 2017), n.breaks = 12) +
scale_y_continuous(limits = c(1, 27),
breaks = df$day,
sec.axis = dup_axis(name = "",
labels = df$day.month)) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black"))