在 ggplot2 中结合 ggflags 和线性回归

Combine ggflags with linear regression in ggplot2

我有这样的数据:

我想 运行 线性回归模型而不是通常的点使用国家标志使用 ggflas (https://github.com/jimjam-slam/ggflags):

Data <- read.xlsx(
  paste0(mainDirectory, "Data.xlsx"),
  "Data")


ggplot(Data, aes(x = x, y = y, country=country, size = 11)) + 
  geom_flag() + 
  scale_country() +
  scale_size(range = c(10, 10)) +
  geom_smooth(method = "lm", se = FALSE)

这很好用,除了我没有显示回归线:

你知道为什么以及如何在同一个图中同时获得标志和回归线吗?

您可以通过将 group=1 美学添加到 geom_smooth 来实现您想要的结果。否则,您的数据会按 country 分组,最终每个国家/地区只有一个 obs,这样您就不会得到一行:

library(ggplot2)
library(ggflags)

set.seed(123)

Data <- data.frame(
  country = c("at", "be", "dk", "fr", "it"),
  x = runif(5),
  y = runif(5)
)

ggplot(Data, aes(x = x, y = y, country = country, size = 11)) +
  geom_flag() +
  scale_country() +
  scale_size(range = c(10, 10)) +
  geom_smooth(aes(group = 1), method = "lm", se = FALSE, size = 1)
#> `geom_smooth()` using formula 'y ~ x'