我希望将债务与失业联系起来。 我希望这条线是弯曲的,因此我使用了bspline2。 当房屋改变时,线的颜色应该改变。 每年应该有一个点(即1月1日) 我重复了一些观点,因为我认为bspline用三点绘制曲线。
尽管如此,我还没有完全理解为什么情节有差距。很可能与我对小组的部分理解有关。
此外,1月1日的点应该出现在线上。我不认为他们使用的是geom_point,因为如果线条笔直的话就是将它们放在图上。我试过这种变化,但我认为我的克星组受到了干扰。
stat_bspline2(aes(x = dot_x, y = dot_y, color = ..group.., group = year), size = 1, n = 300, geom = "point")
总之,
1)为什么情节中存在差距?如何解决?
2)如何获得曲线上的点?
代码:
library(tidyverse)
library(ggforce)
ggplot(debt_unemp) +
stat_bspline2(aes(x = debt, y = unemp, color = ..group.., group = party), size = 1, n = 300, geom = "bspline0") +
scale_color_gradientn(colours = c("red", "pink", "green", "white"), guide = F) +
geom_point(aes(x = dot_x, y = dot_y), size = 2)
这是结果 dput(debt_unemp)
structure(list(year = structure(c(5844, 6209, 6574, 6940, 7305,
7305, 7305, 7670, 8035, 8401, 8766, 9131, 9131, 9496, 9862, 10227,
10592, 10957, 11323, 11688, 11688, 11688, 12053, 12053, 12418,
12784, 13149, 13514, 13879, 14245, 14610, 14975, 15340, 15706,
15706, 16071, 16436, 16801, 17167), class = "Date"), date = structure(c(5844,
6209, 6574, 6940, 7305, 7305, 7578, 7670, 8035, 8401, 8766, 9131,
9307, 9496, 9862, 10227, 10592, 10957, 11323, 11688, 11688, 11792,
12053, 12348, 12418, 12784, 13149, 13514, 13879, 14245, 14610,
14975, 15340, 15706, 15747, 16071, 16436, 16801, 17167), class = "Date"),
fyear = c("1986-1987", "1987-1988", "1988-1989", "1989-1990",
"1990-1991", "1990-1991", "1991-1992", "1991-1992", "1992-1993",
"1993-1994", "1994-1995", "1995-1996", "1996-1997", "1996-1997",
"1997-1998", "1998-1999", "1999-2000", "2000-2001", "2001-2002",
"2002-2003", "2002-2003", "2002-2003", "2003-2004", "2004-2005",
"2004-2005", "2005-2006", "2006-2007", "2007-2008", "2008-2009",
"2009-2010", "2010-2011", "2011-2012", "2012-2013", "2013-2014",
"2012-2013", "2014-2015", "2015-2016", "2016-2017", "2017-2018"
), debt = c(31.5, 34, 35.5, 35.4, 38.4, 38.4, 46.6, 49.4,
61.8, 80.6, 90.7, 101.9, 105.2, 108.8, 112.7, 114.7, 134.4,
132.5, 132.1, 132.6, 132.6, 134.4, 138.8, 140.5, 140.9, 152.7,
153.7, 156.6, 169.6, 193.6, 214.5, 236.2, 252.8, 268, 270,
285.4, 295.4, 301.6, 311.7), unemp = c(7, 6.1, 5, 5, 6.2,
6.2, 8.67, 9.5, 10.8, 10.9, 9.6, 8.7, 8.84, 9, 8.4, 7.2,
6.3, 5.7, 6.3, 7.1, 7.1, 7.04, 6.9, 6.82, 6.8, 6.6, 6.3,
6.4, 6.6, 9.1, 8.7, 7.9, 7.9, 7.6, 7.57, 7.3, 6.8, 6.5, 6
), prem = c("Peterson", "Peterson", "Peterson", "Peterson",
"Peterson", "Peterson", "Rae", "Rae", "Rae", "Rae", "Rae",
"Rae", "Harris", "Harris", "Harris", "Harris", "Harris",
"Harris", "Harris", "Harris", "Harris", "Eves", "Eves", "McGuinty",
"McGuinty", "McGuinty", "McGuinty", "McGuinty", "McGuinty",
"McGuinty", "McGuinty", "McGuinty", "McGuinty", "McGuinty",
"Wynne", "Wynne", "Wynne", "Wynne", "Wynne"), party = c("Liberal",
"Liberal", "Liberal", "Liberal", "Liberal", "Liberal", "NDP",
"NDP", "NDP", "NDP", "NDP", "NDP", "PC", "PC", "PC", "PC",
"PC", "PC", "PC", "PC", "PC", "PC", "PC", "Liberal2", "Liberal2",
"Liberal2", "Liberal2", "Liberal2", "Liberal2", "Liberal2",
"Liberal2", "Liberal2", "Liberal2", "Liberal2", "Liberal2",
"Liberal2", "Liberal2", "Liberal2", "Liberal2"), dot_x = c(31.5,
34, 35.5, 35.4, 38.4, 38.4, NA, 49.4, 61.8, 80.6, 90.7, 101.9,
NA, 108.8, 112.7, 114.7, 134.4, 132.5, 132.1, 132.6, 132.6,
NA, 138.8, NA, 140.9, 152.7, 153.7, 156.6, 169.6, 193.6,
214.5, 236.2, 252.8, 268, NA, 285.4, 295.4, 301.6, 311.7),
dot_y = c(7, 6.1, 5, 5, 6.2, 6.2, NA, 9.5, 10.8, 10.9, 9.6,
8.7, NA, 9, 8.4, 7.2, 6.3, 5.7, 6.3, 7.1, 7.1, NA, 6.9, NA,
6.8, 6.6, 6.3, 6.4, 6.6, 9.1, 8.7, 7.9, 7.9, 7.6, NA, 7.3,
6.8, 6.5, 6)), .Names = c("year", "date", "fyear", "debt",
"unemp", "prem", "party", "dot_x", "dot_y"), row.names = c(NA,
-39L), class = c("tbl_df", "tbl", "data.frame"), spec = structure(list(
cols = structure(list(year = structure(list(format = "%Y"), .Names = "format", class = c("collector_date",
"collector")), date = structure(list(format = "%Y-%m-%d"), .Names = "format", class = c("collector_date",
"collector")), fyear = structure(list(), class = c("collector_character",
"collector")), debt = structure(list(), class = c("collector_number",
"collector")), unemp = structure(list(), class = c("collector_number",
"collector")), prem = structure(list(), class = c("collector_character",
"collector")), party = structure(list(), class = c("collector_character",
"collector")), dot_x = structure(list(), class = c("collector_number",
"collector")), dot_y = structure(list(), class = c("collector_number",
"collector"))), .Names = c("year", "date", "fyear", "debt",
"unemp", "prem", "party", "dot_x", "dot_y")), default = structure(list(), class = c("collector_guess",
"collector"))), .Names = c("cols", "default"), class = "col_spec"))