我有一个庞大而复杂的数据框。 我希望拟合一条平滑的线。 (黄土是不可能的,因为数据很大,而且gam看起来不太好)。我发现 ggforumla 包中的 geom_spline 或 stat_spline 工作得很好。
我希望根据给定 bin 的观察数量调整样条线的透明度(我使用
cut
)。
我尝试过使用点几何体
stat_spline()
,但这不会影响透明度。
理想情况下,最终图将根据给定 x 轴 bin 上给定组的观察数量显示一条具有不同透明度的线。
library(palmerpenguins)
library(tidyverse)
library(ggformula)
penguins_with_obs <- penguins %>%
drop_na() %>%
group_by(species) %>%
mutate(bill_depth_mm_cut = cut(bill_depth_mm, 10)) %>%
group_by(species, bill_depth_mm_cut) %>%
mutate(obs = n()) %>%
arrange(bill_depth_mm_cut) %>%
ungroup()
ggplot(penguins_with_obs, aes(x = bill_depth_mm,
y = bill_length_mm,
colour = species)) +
facet_grid(species ~ sex) +
geom_point(size = 1)+
#geom_spline(aes(alpha = obs), df = 10)+
stat_spline(aes(alpha = obs), df = 10, geom = "point", size = 2)
创建于 2023-11-11,使用 reprex v2.0.2
您是否可以尝试将
alpha = obs
添加到 aes
部分,请...
ggplot(penguins_with_obs,
aes(x = bill_depth_mm,
y = bill_length_mm,
colour = species,
alpha = obs)) +
facet_grid(species ~ sex) +
geom_point(size = 1) +
geom_spline(aes(alpha = obs), df = 10) +
stat_spline(aes(alpha = obs),
df = 10,
geom = "point",
size = 2)