在 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'
我有这样的数据:
我想 运行 线性回归模型而不是通常的点使用国家标志使用 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'