我有这张图表,我试图复制。它有两个连续变量用于X& Y轴,并用线表示这两个变量之间的关系。
我的问题分为两部分:
首先,这种类型的图表叫什么?这是不寻常的,因为点之间的线由第三个变量(年份)决定,而不是它们在X轴上的位置。
第二,有谁知道这是否可以通过ggplot实现?到目前为止,我创建了一个类似于上面的图表但没有连接点的线。这段代码
ggplot(data, aes(x = Weekly_Hours_Per_Person, y = GDP_Per_Hour)) + geom_point()
获得了以下输出:
但是如何在几年内获得这条线?
任何一点的任何帮助将不胜感激。谢谢!
答案 0 :(得分:6)
使用libraray(ggplot2)
ggplot(data, aes(x = Weekly_Hours_Per_Person, y = GDP_Per_Hour)) +
geom_point() +
geom_path()
,即
id
答案 1 :(得分:4)
扩展原始问题。这是一个路径图,正如here所述:
“geom_path()按照它们在数据中出现的顺序连接观察结果.geom_line()按照x轴上的变量顺序连接它们。”
作为原始问题的扩展,您可以标记线弯曲的选定点。以下是可重现数据的示例:
set.seed(123)
df <- data.frame(year = 1960:2006,
Weekly_Hours_Per_Person = c(2:10, 9:0, 1:10, 9:1, 2:10),
GDP_Per_Hour = 1:47 + rnorm(n = 47, mean = 0))
# Only label selected years
df_label <- filter(df, year %in% c(1960, 1968, 1978, 1988, 1997, 2006))
并使用ggrepel
包来偏移顶点上的标签。
library(ggrepel)
ggplot(df, aes(Weekly_Hours_Per_Person, GDP_Per_Hour)) +
geom_path() +
geom_point(data = df_label) +
geom_text_repel(data = df_label, aes(label = year)) +
scale_x_continuous(limits = c(-2, 12))
))